@@ -56,11 +56,15 @@ local function setup_keybinding_when_lspserver_attach_to_buffer()
5656 })
5757end
5858
59- local function setup_lsp (vim_lsp , client_lsp_capabilities , lsp_name )
59+ local function setup_lsp (vim_lsp , lsp_name , client_lsp_capabilities , settings , flags )
6060 -- Extend config for a language
6161 vim_lsp .config (lsp_name ,{
6262 -- Enable LSP with additional completion capabilities
6363 capabilities = client_lsp_capabilities ,
64+ -- LSP setting
65+ settings = settings ,
66+ -- LSP flags
67+ flags = flags ,
6468 })
6569
6670 -- Enable the config
@@ -86,35 +90,175 @@ local function config()
8690 -- the LSP client support so that the LSP server can serve those completion canditates
8791 local client_lsp_cmp_capabilities = cmp .default_capabilities ()
8892
89- -- Python
90- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " ruff" )
91- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " pylsp" )
93+ -- python
94+ setup_lsp (
95+ vim_lsp ,
96+ " ruff" ,
97+ client_lsp_cmp_capabilities ,
98+ {},
99+ {
100+ debounce_text_changes = 200
101+ }
102+ )
103+ setup_lsp (
104+ vim_lsp ,
105+ " pylsp" ,
106+ client_lsp_cmp_capabilities ,
107+ {
108+ black = { enabled = false },
109+ autopep8 = { enabled = false },
110+ yapf = { enabled = false },
111+ -- linter options
112+ pylint = { enabled = false , executable = " pylint" },
113+ ruff = { enabled = true },
114+ pyflakes = { enabled = false },
115+ pycodestyle = { enabled = false },
116+ -- type checker
117+ pylsp_mypy = {
118+ enabled = true ,
119+ overrides = { " --python-executable" , py_path , true },
120+ report_progress = true ,
121+ live_mode = false
122+ },
123+ -- auto-completion options
124+ jedi_completion = { fuzzy = true },
125+ -- import sorting
126+ isort = { enabled = false },
127+ },
128+ {
129+ debounce_text_changes = 200
130+ }
131+ )
92132 -- vimL
93- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " vimls" )
133+ setup_lsp (
134+ vim_lsp ,
135+ " vimls" ,
136+ client_lsp_cmp_capabilities ,
137+ {},
138+ {
139+ debounce_text_changes = 200
140+ }
141+ )
94142 -- terraform
95- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " terraformls" )
143+ setup_lsp (
144+ vim_lsp ,
145+ " terraformls" ,
146+ client_lsp_cmp_capabilities ,
147+ {},
148+ {
149+ debounce_text_changes = 200
150+ }
151+ )
96152 -- rust
97- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " rust_analyzer" )
153+ setup_lsp (
154+ vim_lsp ,
155+ " rust_analyzer" ,
156+ client_lsp_cmp_capabilities ,
157+ {},
158+ {
159+ debounce_text_changes = 200
160+ }
161+ )
98162 -- markdown
99- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " marksman" )
163+ setup_lsp (
164+ vim_lsp ,
165+ " marksman" ,
166+ client_lsp_cmp_capabilities ,
167+ {},
168+ {
169+ debounce_text_changes = 200
170+ }
171+ )
100172 -- lua
101- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " lua_ls" )
173+ setup_lsp (
174+ vim_lsp ,
175+ " lua_ls" ,
176+ client_lsp_cmp_capabilities ,
177+ {},
178+ {
179+ debounce_text_changes = 200
180+ }
181+ )
102182 -- latex
103- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " ltex" )
183+ setup_lsp (
184+ vim_lsp ,
185+ " ltex" ,
186+ client_lsp_cmp_capabilities ,
187+ {},
188+ {
189+ debounce_text_changes = 200
190+ }
191+ )
104192 -- json
105- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " jsonls" )
193+ setup_lsp (
194+ vim_lsp ,
195+ " jsonls" ,
196+ client_lsp_cmp_capabilities ,
197+ {},
198+ {
199+ debounce_text_changes = 200
200+ }
201+ )
106202 -- yaml
107- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " yamlls" )
203+ setup_lsp (
204+ vim_lsp ,
205+ " yamlls" ,
206+ client_lsp_cmp_capabilities ,
207+ {},
208+ {
209+ debounce_text_changes = 200
210+ }
211+ )
108212 -- html
109- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " html" )
213+ setup_lsp (
214+ vim_lsp ,
215+ " html" ,
216+ client_lsp_cmp_capabilities ,
217+ {},
218+ {
219+ debounce_text_changes = 200
220+ }
221+ )
110222 -- dockerfile
111- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " dockerls" )
223+ setup_lsp (
224+ vim_lsp ,
225+ " dockerls" ,
226+ client_lsp_cmp_capabilities ,
227+ {},
228+ {
229+ debounce_text_changes = 200
230+ }
231+ )
112232 -- clojure
113- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " clojure_lsp" )
233+ setup_lsp (
234+ vim_lsp ,
235+ " clojure_lsp" ,
236+ client_lsp_cmp_capabilities ,
237+ {},
238+ {
239+ debounce_text_changes = 200
240+ }
241+ )
114242 -- astrojs
115- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , " astro" )
243+ setup_lsp (
244+ vim_lsp ,
245+ " astro" ,
246+ client_lsp_cmp_capabilities ,
247+ {},
248+ {
249+ debounce_text_changes = 200
250+ }
251+ )
116252 -- harper-js
117- setup_lsp (vim_lsp , client_lsp_cmp_capabilities , ' harper_ls' )
253+ setup_lsp (
254+ vim_lsp ,
255+ ' harper_ls' ,
256+ client_lsp_cmp_capabilities ,
257+ {},
258+ {
259+ debounce_text_changes = 200
260+ }
261+ )
118262
119263 mapping_diagnostics ()
120264 setup_keybinding_when_lspserver_attach_to_buffer ()
0 commit comments