Skip to content

Commit a2ebd98

Browse files
committed
Add note about parameter highlighting
1 parent f199307 commit a2ebd98

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Sources/SourceKitLSP/Swift/SemanticTokens.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,10 @@ struct SemanticTokenParser {
229229
var tokens: [SemanticToken] = []
230230

231231
if let offset: Int = useName ? response[keys.nameoffset] : response[keys.offset],
232-
let length: Int = useName ? response[keys.namelength] : response[keys.length],
233-
let start: Position = snapshot.positionOf(utf8Offset: offset),
234-
let skKind: sourcekitd_uid_t = response[keys.kind],
235-
let (kind, modifiers) = parseKindAndModifiers(skKind) {
232+
let length: Int = useName ? response[keys.namelength] : response[keys.length],
233+
let start: Position = snapshot.positionOf(utf8Offset: offset),
234+
let skKind: sourcekitd_uid_t = response[keys.kind],
235+
let (kind, modifiers) = parseKindAndModifiers(skKind) {
236236
let token = SemanticToken(
237237
start: start,
238238
length: length,
@@ -328,11 +328,14 @@ struct SemanticTokenParser {
328328
case values.decl_var_local,
329329
values.decl_var_global:
330330
return (.variable, [.declaration])
331+
// We ignore `value.decl_var_parameter`s for now.
332+
// SourceKit seems to use these to refer to parameter labels,
333+
// therefore we don't use .parameter here (which LSP client like
334+
// VSCode seem to interpret as variable identifiers, however
335+
// causing a 'wrong highlighting' e.g. of `x` in `f(x y: Int) {}`)
331336
case values.ref_var_local,
332337
values.ref_var_global:
333338
return (.variable, [])
334-
case values.decl_var_parameter:
335-
return (.parameter, [.declaration])
336339
case values.syntaxtype_comment,
337340
values.syntaxtype_doccomment:
338341
return (.comment, [])

0 commit comments

Comments
 (0)