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
|
-- 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
-- astro = true, -- astro framework
-- mdx_analyzer = true, -- markdown with JS I think
-- marksman = true, -- Markdown LSP
-- markdown_oxide = true, -- Markdown LSP but better
-- gopls = {
-- cmd = { 'gopls' },
-- filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' },
-- root_dir = function(filename)
-- return require('lspconfig/util').root_pattern('go.work', 'go.mod', '.git')(filename)
-- end,
-- settings = {
-- gopls = {
-- gofumpt = true,
-- codelenses = {
-- gc_details = false,
-- generate = true,
-- regenerate_cgo = true,
-- run_govulncheck = true,
-- test = true,
-- tidy = true,
-- upgrade_dependency = true,
-- vendor = true,
-- },
-- hints = {
-- assignVariableTypes = false,
-- compositeLiteralFields = false,
-- compositeLiteralTypes = true,
-- constantValues = true,
-- functionTypeParameters = false,
-- parameterNames = false,
-- rangeVariableTypes = true,
-- },
-- analyses = {
-- fieldalignment = true,
-- nilness = true,
-- unusedparams = true,
-- unusedwrite = true,
-- useany = true,
-- },
-- usePlaceholders = false,
-- completeUnimported = true,
-- staticcheck = true,
-- directoryFilters = { '-.git', '-.vscode', '-.idea', '-.vscode-test', '-node_modules' },
-- semanticTokens = true,
-- },
-- },
-- }, -- Go LSP
-- jdtls = true, -- java
-- sqlls = true,
-- sqls = {
-- on_attach = function(client, bufnr)
-- require('sqls').on_attach(client, bufnr)
-- end,
-- settings = {
-- sqls = {
-- connections = {
-- {
-- driver = 'sqlite3',
-- dataSourceName = '/home/kyren/projects/eko/server.db',
-- },
-- },
-- },
-- },
-- },
}
|