-
Notifications
You must be signed in to change notification settings - Fork 9
/
capabilities.ts
108 lines (107 loc) · 2.9 KB
/
capabilities.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import {
codeActionKinds,
commands,
completionTriggerCharacters,
onTypeFormatFirstTriggerCharacter,
onTypeFormatMoreTriggerCharacter,
semanticTokenModifiers,
semanticTokenTypes,
signatureHelpReTriggerCharacters,
signatureHelpTriggerCharacters,
} from "@vtsls/language-service";
import { ServerCapabilities, TextDocumentSyncKind } from "vscode-languageserver/node";
export function getTsLspDefaultCapabilities(): ServerCapabilities {
return {
textDocumentSync: {
openClose: true,
change: TextDocumentSyncKind.Incremental,
willSave: false,
willSaveWaitUntil: false,
save: false,
},
completionProvider: {
triggerCharacters: completionTriggerCharacters,
resolveProvider: true,
completionItem: {
labelDetailsSupport: true,
},
},
hoverProvider: true,
signatureHelpProvider: {
triggerCharacters: signatureHelpTriggerCharacters,
retriggerCharacters: signatureHelpReTriggerCharacters,
},
declarationProvider: false,
definitionProvider: true,
typeDefinitionProvider: true,
implementationProvider: true,
referencesProvider: true,
documentHighlightProvider: true,
documentSymbolProvider: {
label: "typescript",
},
codeActionProvider: {
codeActionKinds,
resolveProvider: true,
},
codeLensProvider: { resolveProvider: true },
// documentLinkProvider: { resolveProvider: false },
documentLinkProvider: undefined,
colorProvider: false,
workspaceSymbolProvider: { resolveProvider: false },
documentFormattingProvider: true,
documentRangeFormattingProvider: true,
documentOnTypeFormattingProvider: {
firstTriggerCharacter: onTypeFormatFirstTriggerCharacter,
moreTriggerCharacter: onTypeFormatMoreTriggerCharacter,
},
renameProvider: {
prepareProvider: true,
},
foldingRangeProvider: true,
selectionRangeProvider: true,
executeCommandProvider: {
commands,
},
callHierarchyProvider: true,
linkedEditingRangeProvider: true,
semanticTokensProvider: {
legend: {
tokenTypes: semanticTokenTypes,
tokenModifiers: semanticTokenModifiers,
},
full: true,
range: true,
},
monikerProvider: false,
typeHierarchyProvider: false,
inlineValueProvider: false,
inlayHintProvider: true,
workspace: {
workspaceFolders: {
supported: true,
changeNotifications: true,
},
fileOperations: {
didRename: {
filters: [
{
scheme: "file",
pattern: {
glob: "**/*.{ts,cts,mts,tsx,js,cjs,mjs,jsx}",
matches: "file",
},
},
{
scheme: "file",
pattern: {
glob: "**/*",
matches: "folder",
},
},
],
},
},
},
};
}