@@ -93,6 +93,7 @@ class SemanticdbConsumer extends TastyConsumer {
9393 " ()"
9494 }
9595 }
96+
9697 def iterateParent (symbol : Symbol ): String = {
9798 if (symbolsCache.contains(symbol)) {
9899 return symbolsCache(symbol)
@@ -147,15 +148,20 @@ class SemanticdbConsumer extends TastyConsumer {
147148 )
148149 }
149150
150- def range (pos : Position , name : String ): s.Range = {
151+ def range (tree : Tree , pos : Position , name : String ): s.Range = {
152+ val offset = tree match {
153+ case IsPackageClause (tree) => " package " .length
154+ case _ => 0
155+ }
156+
151157 val range_end_column =
152158 if (name == " <init>" ) {
153159 pos.endColumn
154160 } else {
155161 pos.startColumn + name.length
156162 }
157163
158- s.Range (pos.startLine, pos.startColumn, pos.startLine, range_end_column)
164+ s.Range (pos.startLine, pos.startColumn + offset , pos.startLine, range_end_column + offset )
159165 }
160166
161167 def rangeExclude (range : Position , exclude : Position ): s.Range = {
@@ -166,13 +172,13 @@ class SemanticdbConsumer extends TastyConsumer {
166172 range.endColumn)
167173 }
168174
169- def typetreeSymbol (typetree : TypeTree ): Unit =
175+ def typetreeSymbol (tree : Tree , typetree : TypeTree ): Unit =
170176 typetree match {
171177 case TypeTree .Synthetic => ()
172178 case _ =>
173179 addOccurence(typetree.symbol,
174180 s.SymbolOccurrence .Role .REFERENCE ,
175- range(typetree.pos, typetree.symbol.name))
181+ range(tree, typetree.pos, typetree.symbol.name))
176182 }
177183
178184 override def traverseTree (tree : Tree )(implicit ctx : Context ): Unit = {
@@ -181,14 +187,14 @@ class SemanticdbConsumer extends TastyConsumer {
181187 case IsDefinition (body) => {
182188 if (tree.symbol.name != " <init>" ) {
183189 val _ = tree match {
184- case DefDef (_, _, _, typetree, _) => typetreeSymbol(typetree)
185- case ValDef (_, typetree, _) => typetreeSymbol(typetree)
190+ case DefDef (_, _, _, typetree, _) => typetreeSymbol(tree, typetree)
191+ case ValDef (_, typetree, _) => typetreeSymbol(tree, typetree)
186192 case _ => ()
187193 }
188194 }
189195 addOccurence(tree.symbol,
190196 s.SymbolOccurrence .Role .DEFINITION ,
191- range(tree.symbol.pos, tree.symbol.name))
197+ range(tree, tree .symbol.pos, tree.symbol.name))
192198
193199 super .traverseTree(body)
194200 }
@@ -204,13 +210,13 @@ class SemanticdbConsumer extends TastyConsumer {
204210 // println(tree.namePos.startColumn, tree.namePos.endColumn)
205211 addOccurence(tree.symbol,
206212 s.SymbolOccurrence .Role .REFERENCE ,
207- range(tree.pos, tree.symbol.name))
213+ range(tree, tree .pos, tree.symbol.name))
208214 super .traverseTree(tree)
209215 }
210216 case PackageClause (_) =>
211217 addOccurence(tree.symbol,
212218 s.SymbolOccurrence .Role .REFERENCE ,
213- range(tree.pos, tree.symbol.name))
219+ range(tree, tree .pos, tree.symbol.name))
214220 super .traverseTree(tree)
215221
216222 case tree =>
0 commit comments