12
12
13
13
import LSPLogging
14
14
import LanguageServerProtocol
15
+ import SourceKitD
15
16
import SwiftIDEUtils
16
17
import SwiftParser
17
18
import SwiftSyntax
18
- import SourceKitD
19
19
20
20
extension SwiftLanguageServer {
21
21
/// Requests the semantic highlighting tokens for the given snapshot from sourcekitd.
22
22
private func semanticHighlightingTokens( for snapshot: DocumentSnapshot ) async throws -> [ SyntaxHighlightingToken ] ? {
23
23
guard let buildSettings = await self . buildSettings ( for: snapshot. uri) , !buildSettings. isFallback else {
24
24
return nil
25
25
}
26
-
26
+
27
27
let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
28
28
skreq [ keys. request] = requests. semantic_tokens
29
29
skreq [ keys. sourcefile] = snapshot. uri. pseudoPath
@@ -36,10 +36,7 @@ extension SwiftLanguageServer {
36
36
guard let skTokens: SKDResponseArray = dict [ keys. semantic_tokens] else {
37
37
return nil
38
38
}
39
- let tokenParser = SyntaxHighlightingTokenParser ( sourcekitd: sourcekitd)
40
- var tokens : [ SyntaxHighlightingToken ] = [ ]
41
- tokenParser. parseTokens ( skTokens, in: snapshot, into: & tokens)
42
- return tokens
39
+ return SyntaxHighlightingTokenParser ( sourcekitd: sourcekitd) . parseTokens ( skTokens, in: snapshot)
43
40
}
44
41
45
42
/// Computes an array of syntax highlighting tokens from the syntax tree that
@@ -56,12 +53,13 @@ extension SwiftLanguageServer {
56
53
) async -> [ SyntaxHighlightingToken ] {
57
54
async let tree = syntaxTreeManager. syntaxTree ( for: snapshot)
58
55
async let semanticTokens = await orLog { try await semanticHighlightingTokens ( for: snapshot) }
59
-
60
- let range = if let range = range. flatMap ( { $0. byteSourceRange ( in: snapshot) } ) {
61
- range
62
- } else {
63
- ByteSourceRange ( offset: 0 , length: await tree. totalLength. utf8Length)
64
- }
56
+
57
+ let range =
58
+ if let range = range. flatMap ( { $0. byteSourceRange ( in: snapshot) } ) {
59
+ range
60
+ } else {
61
+ ByteSourceRange ( offset: 0 , length: await tree. totalLength. utf8Length)
62
+ }
65
63
return
66
64
await tree
67
65
. classifications ( in: range)
0 commit comments