@@ -58,12 +58,22 @@ private fun pickImportantElements(node: PsiElement, includeLocals: Boolean): KtN
5858 }
5959
6060private fun workspaceSymbol (locationRequired : Boolean ): (KtNamedDeclaration ) -> WorkspaceSymbol ? {
61+ fun location (d : KtNamedDeclaration ): Location ? {
62+ val content = d.containingFile?.text
63+ val locationInContent = (d.nameIdentifier?.textRange ? : d.textRange)
64+ return if (content != null && locationInContent != null ) {
65+ Location (d.containingFile.toURIString(), range(content, locationInContent))
66+ } else {
67+ null
68+ }
69+ }
70+
6171 return { d ->
6272 d.name?.let { name ->
6373 val location: Either <Location , WorkspaceSymbolLocation >? = if (locationRequired) {
6474 location(d)?.let { l -> Either .forLeft(l) }
6575 } else {
66- Either .forRight(workspaceSymbolLocation(d ))
76+ Either .forRight(WorkspaceSymbolLocation (d.containingFile.toURIString() ))
6777 }
6878
6979 location?.let { WorkspaceSymbol (name, symbolKind(d), it, symbolContainer(d)) }
@@ -82,23 +92,6 @@ private fun symbolKind(d: KtNamedDeclaration): SymbolKind =
8292 else -> throw IllegalArgumentException (" Unexpected symbol $d " )
8393 }
8494
85- private fun location (d : KtNamedDeclaration ): Location ? =
86- try {
87- val content = d.containingFile?.text
88- val locationInContent = (d.nameIdentifier?.textRange ? : d.textRange)
89- if (content != null && locationInContent != null ) {
90- Location (d.containingFile.toURIString(), range(content, locationInContent))
91- } else {
92- null
93- }
94- } catch (e: Exception ) {
95- null
96- }
97-
98-
99- private fun workspaceSymbolLocation (d : KtNamedDeclaration ): WorkspaceSymbolLocation =
100- WorkspaceSymbolLocation (d.containingFile.toURIString())
101-
10295private fun symbolContainer (d : KtNamedDeclaration ): String? =
10396 d.parents
10497 .filterIsInstance<KtNamedDeclaration >()
0 commit comments