@@ -10,6 +10,7 @@ struct SwiftFocusedCodeFinder: FocusedCodeFinder {
1010 activeDocumentContext: ActiveDocumentContext
1111 ) -> CodeContext {
1212 let source = activeDocumentContext. fileContent
13+ #warning("TODO: cache the tree")
1314 let tree = Parser . parse ( source: source)
1415
1516 let locationConverter = SourceLocationConverter (
@@ -58,7 +59,6 @@ struct SwiftFocusedCodeFinder: FocusedCodeFinder {
5859 result. imports = visitor. imports
5960 return result
6061 }
61- nodes. removeFirst ( )
6262 codeRange = convertRange ( focusedNode)
6363 } else {
6464 codeRange = range
@@ -91,8 +91,7 @@ struct SwiftFocusedCodeFinder: FocusedCodeFinder {
9191 }
9292
9393 return . init(
94- scope: signature
95- . isEmpty ? . file : . scope( signature: signature. joined ( separator: " > " ) ) ,
94+ scope: signature. isEmpty ? . file : . scope( signature: signature) ,
9695 contextRange: contextRange,
9796 focusedRange: codeRange,
9897 focusedCode: code,
@@ -130,7 +129,8 @@ extension SwiftFocusedCodeFinder {
130129 return ( . init(
131130 signature: " \( type) \( name) "
132131 . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
133- . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) ) ,
132+ . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) )
133+ . replacingOccurrences ( of: " \n " , with: " " ) ,
134134 contextRange: convertRange ( node)
135135 ) , false )
136136
@@ -140,7 +140,8 @@ extension SwiftFocusedCodeFinder {
140140 return ( . init(
141141 signature: " \( type) \( name) "
142142 . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
143- . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) ) ,
143+ . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) )
144+ . replacingOccurrences ( of: " \n " , with: " " ) ,
144145 contextRange: convertRange ( node)
145146 ) , false )
146147
@@ -150,7 +151,8 @@ extension SwiftFocusedCodeFinder {
150151 return ( . init(
151152 signature: " \( type) \( name) "
152153 . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
153- . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) ) ,
154+ . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) )
155+ . replacingOccurrences ( of: " \n " , with: " " ) ,
154156 contextRange: convertRange ( node)
155157 ) , false )
156158
@@ -160,7 +162,8 @@ extension SwiftFocusedCodeFinder {
160162 return ( . init(
161163 signature: " \( type) \( name) "
162164 . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
163- . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) ) ,
165+ . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) )
166+ . replacingOccurrences ( of: " \n " , with: " " ) ,
164167 contextRange: convertRange ( node)
165168 ) , false )
166169
@@ -169,7 +172,8 @@ extension SwiftFocusedCodeFinder {
169172 let name = node. identifier. text
170173 return ( . init(
171174 signature: " \( type) \( name) "
172- . prefixedModifiers ( node. modifierAndAttributeText ( extractText) ) ,
175+ . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
176+ . replacingOccurrences ( of: " \n " , with: " " ) ,
173177 contextRange: convertRange ( node)
174178 ) , false )
175179
@@ -179,7 +183,8 @@ extension SwiftFocusedCodeFinder {
179183 return ( . init(
180184 signature: " \( type) \( name) "
181185 . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
182- . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) ) ,
186+ . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) )
187+ . replacingOccurrences ( of: " \n " , with: " " ) ,
183188 contextRange: convertRange ( node)
184189 ) , false )
185190
@@ -189,14 +194,18 @@ extension SwiftFocusedCodeFinder {
189194 return ( . init(
190195 signature: " \( type) \( name) "
191196 . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
192- . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) ) ,
197+ . suffixedInheritance ( node. inheritanceClauseTexts ( extractText) )
198+ . replacingOccurrences ( of: " \n " , with: " " ) ,
193199 contextRange: convertRange ( node)
194200 ) , false )
195201
196202 case let node as FunctionDeclSyntax :
197203 let type = node. funcKeyword. text
198204 let name = node. identifier. text
199205 let signature = node. signature. trimmedDescription
206+ . split ( separator: " \n " )
207+ . map { $0. trimmingCharacters ( in: . whitespacesAndNewlines) }
208+ . joined ( separator: " " )
200209
201210 return ( . init(
202211 signature: " \( type) \( name) \( signature) "
@@ -211,7 +220,8 @@ extension SwiftFocusedCodeFinder {
211220
212221 return ( . init(
213222 signature: " \( type) \( name) \( signature. isEmpty ? " " : " : \( signature) " ) "
214- . prefixedModifiers ( node. modifierAndAttributeText ( extractText) ) ,
223+ . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
224+ . replacingOccurrences ( of: " \n " , with: " " ) ,
215225 contextRange: convertRange ( node)
216226 ) , true )
217227
@@ -221,7 +231,8 @@ extension SwiftFocusedCodeFinder {
221231
222232 return ( . init(
223233 signature: signature
224- . prefixedModifiers ( node. modifierAndAttributeText ( extractText) ) ,
234+ . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
235+ . replacingOccurrences ( of: " \n " , with: " " ) ,
225236 contextRange: convertRange ( node)
226237 ) , true )
227238
@@ -233,7 +244,8 @@ extension SwiftFocusedCodeFinder {
233244
234245 return ( . init(
235246 signature: signature
236- . prefixedModifiers ( node. modifierAndAttributeText ( extractText) ) ,
247+ . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
248+ . replacingOccurrences ( of: " \n " , with: " " ) ,
237249 contextRange: convertRange ( node)
238250 ) , true )
239251
@@ -242,7 +254,8 @@ extension SwiftFocusedCodeFinder {
242254
243255 return ( . init(
244256 signature: " \( signature) "
245- . prefixedModifiers ( node. modifierAndAttributeText ( extractText) ) ,
257+ . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
258+ . replacingOccurrences ( of: " \n " , with: " " ) ,
246259
247260 contextRange: convertRange ( node)
248261 ) , true )
@@ -252,7 +265,8 @@ extension SwiftFocusedCodeFinder {
252265
253266 return ( . init(
254267 signature: signature
255- . prefixedModifiers ( node. modifierAndAttributeText ( extractText) ) ,
268+ . prefixedModifiers ( node. modifierAndAttributeText ( extractText) )
269+ . replacingOccurrences ( of: " \n " , with: " " ) ,
256270
257271 contextRange: convertRange ( node)
258272 ) , true )
@@ -261,22 +275,22 @@ extension SwiftFocusedCodeFinder {
261275 let signature = " closure "
262276
263277 return ( . init(
264- signature: signature,
278+ signature: signature. replacingOccurrences ( of : " \n " , with : " " ) ,
265279 contextRange: convertRange ( node)
266280 ) , true )
267281
268282 case let node as FunctionCallExprSyntax :
269283 let signature = " function call "
270284
271285 return ( . init(
272- signature: signature,
286+ signature: signature. replacingOccurrences ( of : " \n " , with : " " ) ,
273287 contextRange: convertRange ( node) ,
274288 canBeUsedAsCodeRange: false
275289 ) , true )
276290
277291 case let node as SwitchCaseSyntax :
278292 return ( . init(
279- signature: node. trimmedDescription,
293+ signature: node. trimmedDescription. replacingOccurrences ( of : " \n " , with : " " ) ,
280294 contextRange: convertRange ( node)
281295 ) , true )
282296
0 commit comments