-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkak-lsp.toml
144 lines (131 loc) · 5 KB
/
kak-lsp.toml
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
file_watch_support = false
snippet_support = true
verbosity = 2
[server]
# exit session if no requests were received during given period in seconds
# set to 0 to disable
timeout = 1800 # seconds = 30 minutes
# This section overrides language IDs.
# By default, kakoune-lsp uses filetypes for the IDs.
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentItem
[language_ids]
c = "c_cpp"
cpp = "c_cpp"
javascript = "javascriptreact"
typescript = "typescriptreact"
protobuf = "proto"
sh = "shellscript"
[language_server.bash-language-server]
filetypes = ["sh"]
roots = [".git", ".hg"]
args = ["start"]
command = "bash-language-server"
[language_server.vscode-css-language-server]
filetypes = ["css"]
roots = ["package.json", ".git", ".hg"]
command = "css-languageserver"
args = ["--stdio"]
[language_server.deno]
filetypes = ["javascript", "typescript"]
roots = ["deno.json", ".git", ".hg"]
command="deno"
args = ["lsp"]
settings_section = "deno"
[language_server.vscode-html-language-server]
filetypes = ["html"]
roots = ["package.json"]
command = "html-languageserver"
args = ["--stdio"]
settings_section = "_"
[language_server.vscode-json-language-server]
filetypes = ["json"]
roots = ["package.json"]
command = "json-languageserver"
args = ["--stdio"]
[language_server.lua-language-server]
filetypes = ["lua"]
roots = [".git", ".hg"]
command = "lua-language-server"
settings_section = "Lua"
[language_server.lua-language-server.settings.Lua]
# See https://github.com/sumneko/vscode-lua/blob/master/setting/schema.json
# diagnostics.enable = true
[language_server.rust-analyzer]
filetypes = ["rust"]
roots = ["Cargo.toml"]
command = "sh"
args = [
"-c",
"""
if path=$(rustup which rust-analyzer 2>/dev/null); then
exec "$path"
else
exec rust-analyzer
fi
""",
]
[language_server.rust-analyzer.experimental]
commands.commands = ["rust-analyzer.runSingle"]
hoverActions = true
[language_server.rust-analyzer.settings.rust-analyzer]
# See https://rust-analyzer.github.io/manual.html#configuration
# cargo.features = []
check.command = "clippy"
[language_server.typescript-language-server]
filetypes = ["javascript", "typescript"]
roots = ["package.json", "tsconfig.json", "jsconfig.json", ".git", ".hg"]
command = "typescript-language-server"
args = ["--stdio"]
settings_section = "_"
[language_server.typescript-language-server.settings._]
quotePreference = "double"
typescript.format.semicolons = "insert"
# Inlay hints; TS
typescript.inlayHints.includeInlayEnumMemberValueHints = true
typescript.inlayHints.includeInlayFunctionLikeReturnTypeHints = true
typescript.inlayHints.includeInlayFunctionParameterTypeHints = true
typescript.inlayHints.includeInlayParameterNameHints = "literals"
typescript.inlayHints.includeInlayParameterNameHintsWhenArgumentMatchesName = true
typescript.inlayHints.includeInlayPropertyDeclarationTypeHints = true
typescript.inlayHints.includeInlayVariableTypeHints = true
typescript.inlayHints.includeInlayVariableTypeHintsWhenTypeMatchesName = true
# JS
javascript.inlayHints.includeInlayEnumMemberValueHints = true
javascript.inlayHints.includeInlayFunctionLikeReturnTypeHints = true
javascript.inlayHints.includeInlayFunctionParameterTypeHints = true
javascript.inlayHints.includeInlayParameterNameHints = "literals"
javascript.inlayHints.includeInlayParameterNameHintsWhenArgumentMatchesName = true
javascript.inlayHints.includeInlayPropertyDeclarationTypeHints = true
javascript.inlayHints.includeInlayVariableTypeHints = true
javascript.inlayHints.includeInlayVariableTypeHintsWhenTypeMatchesName = true
[language_server.biome]
filetypes = ["typescript", "javascript"]
roots = ["biome.json", "package.json", "tsconfig.json", "jsconfig.json", ".git", ".hg"]
command = "biome"
args = ["lsp-proxy"]
[language_server.ruby-lsp]
filetypes = ["ruby", "eruby"]
roots = ["Gemfile"]
command = "ruby-lsp"
# Semantic tokens support
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_semanticTokens
# for the default list of tokens and modifiers.
# However, many language servers implement their own values.
# Make sure to check the output of `lsp-capabilities` and each server's documentation and source code as well.
# Examples:
# - TypeScript: https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/semanticTokens.ts
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/ide/src/syntax_highlighting.rs
[semantic_tokens]
faces = [
{face="documentation", token="comment", modifiers=["documentation"]},
{face="comment", token="comment"},
{face="function", token="function"},
{face="keyword", token="keyword"},
{face="module", token="namespace"},
{face="operator", token="operator"},
{face="string", token="string"},
{face="type", token="type"},
{face="default+d", token="variable", modifiers=["readonly"]},
{face="default+d", token="variable", modifiers=["constant"]},
{face="variable", token="variable"},
]