@@ -93,6 +93,7 @@ class SemanticdbConsumer extends TastyConsumer {
93
93
" ()"
94
94
}
95
95
}
96
+
96
97
def iterateParent (symbol : Symbol ): String = {
97
98
if (symbolsCache.contains(symbol)) {
98
99
return symbolsCache(symbol)
@@ -147,15 +148,20 @@ class SemanticdbConsumer extends TastyConsumer {
147
148
)
148
149
}
149
150
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
+
151
157
val range_end_column =
152
158
if (name == " <init>" ) {
153
159
pos.endColumn
154
160
} else {
155
161
pos.startColumn + name.length
156
162
}
157
163
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 )
159
165
}
160
166
161
167
def rangeExclude (range : Position , exclude : Position ): s.Range = {
@@ -166,13 +172,13 @@ class SemanticdbConsumer extends TastyConsumer {
166
172
range.endColumn)
167
173
}
168
174
169
- def typetreeSymbol (typetree : TypeTree ): Unit =
175
+ def typetreeSymbol (tree : Tree , typetree : TypeTree ): Unit =
170
176
typetree match {
171
177
case TypeTree .Synthetic => ()
172
178
case _ =>
173
179
addOccurence(typetree.symbol,
174
180
s.SymbolOccurrence .Role .REFERENCE ,
175
- range(typetree.pos, typetree.symbol.name))
181
+ range(tree, typetree.pos, typetree.symbol.name))
176
182
}
177
183
178
184
override def traverseTree (tree : Tree )(implicit ctx : Context ): Unit = {
@@ -181,14 +187,14 @@ class SemanticdbConsumer extends TastyConsumer {
181
187
case IsDefinition (body) => {
182
188
if (tree.symbol.name != " <init>" ) {
183
189
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)
186
192
case _ => ()
187
193
}
188
194
}
189
195
addOccurence(tree.symbol,
190
196
s.SymbolOccurrence .Role .DEFINITION ,
191
- range(tree.symbol.pos, tree.symbol.name))
197
+ range(tree, tree .symbol.pos, tree.symbol.name))
192
198
193
199
super .traverseTree(body)
194
200
}
@@ -204,13 +210,13 @@ class SemanticdbConsumer extends TastyConsumer {
204
210
// println(tree.namePos.startColumn, tree.namePos.endColumn)
205
211
addOccurence(tree.symbol,
206
212
s.SymbolOccurrence .Role .REFERENCE ,
207
- range(tree.pos, tree.symbol.name))
213
+ range(tree, tree .pos, tree.symbol.name))
208
214
super .traverseTree(tree)
209
215
}
210
216
case PackageClause (_) =>
211
217
addOccurence(tree.symbol,
212
218
s.SymbolOccurrence .Role .REFERENCE ,
213
- range(tree.pos, tree.symbol.name))
219
+ range(tree, tree .pos, tree.symbol.name))
214
220
super .traverseTree(tree)
215
221
216
222
case tree =>
0 commit comments