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
|
-- NOTE: a table or true to enable, false to disable
return {
lua_ls = {
settings = {
diagnostics = { globals = { 'vim' } },
telemetry = { enabled = false },
hint = { enable = true },
workspace = {
library = {
[vim.fn.expand('$VIMRUNTIME/lua')] = true,
[vim.fn.stdpath('config') .. '/lua'] = true,
},
},
},
}, -- lua
clangd = {
cmd = {
'clangd',
'--background-index',
'--clang-tidy',
'--header-insertion=iwyu',
'--completion-style=detailed',
'--function-arg-placeholders',
'--fallback-style=llvm',
},
root_dir = function(filename)
return require('lspconfig/util').root_pattern(
'.clang-tidy',
'.clang-format',
'compile_commands.json',
'.git'
)(filename) or vim.fn.getcwd()
end,
init_options = {
usePlaceholders = true,
completeUnimported = true,
clangdFileStatus = true,
},
}, -- c/cpp
neocmake = {
root_dir = function(filename)
return require('lspconfig/util').root_pattern(
'CMakePresets.json',
'CTestConfig.cmake',
'build',
'cmake',
'.git' -- NOTE: git is last due to monorepos (so it tries to use build/cmake first)
)(filename) or vim.fn.getcwd()
end,
},
pyright = {
settings = {
python = {
pythonPath = '~/python/venv/bin/python',
},
},
}, -- python
bashls = true, -- bash
taplo = true, -- toml
lemminx = true, -- xml
yamlls = true, -- yaml
jsonls = true, -- json
html = true, -- html
cssls = true, -- css
ts_ls = true, -- javascript/typescript
-- marksman = true, -- Markdown LSP
markdown_oxide = true, -- Markdown LSP but better
}
|