mattn / vim-lsp-settings

Auto configurations for Language Server for vim-lsp
MIT License
1.29k stars 230 forks source link

Multiple default server definitions and global settings #344

Open rafi opened 3 years ago

rafi commented 3 years ago

Is this the only way to register multiple default servers for filetypes?

let g:lsp_settings_filetype_go = ['gopls', 'golangci-lint-langserver']
let g:lsp_settings_filetype_javascript = ['typescript-language-server', 'eslint-language-server']
let g:lsp_settings_filetype_javascriptreact = ['typescript-language-server', 'eslint-language-server']
let g:lsp_settings_filetype_typescript = ['typescript-language-server', 'eslint-language-server']
let g:lsp_settings_filetype_typescriptreact = ['typescript-language-server', 'eslint-language-server']
let g:lsp_settings_filetype_html = ['html-languageserver', 'tailwindcss-intellisense']
let g:lsp_settings_filetype_css = ['css-languageserver', 'tailwindcss-intellisense']
let g:lsp_settings_filetype_scss = ['css-languageserver', 'tailwindcss-intellisense']
let g:lsp_settings_filetype_less = ['css-languageserver', 'tailwindcss-intellisense']

Is it possible to set it in the global settings.json file?

jmdevin commented 3 years ago

I had thought that adding 'yaml' to the allowlist in g:lsp_settings would let me start the dart analysis server on yaml files (which it supports). However the allowlist does not seem to have any effect on whether a server starts. This is strange, as when I register a server directly with lsp#register_server the allowlist does cause a server to start (tested by registering 'ccls' and adding 'yaml' to its allowlist). The only way I can force the dart analysis server to start for yaml files, other than registering the server directly with lsp#register_server and losing the whole point of this additional plugin, is to put

let g:lsp_settings_filetype_yaml = ['analysis-server-dart-snapshot', 'yaml-language-server']

in my vimrc. So, I have the same question you do. Shouldn't adding a filetype to the 'allowlist' of a server in g:lsp_settings cause that server to start when that filetype is opened? Should I file a separate bug? @mattn @prabirshrestha

yash-fn commented 1 year ago

Just to confirm, I am understanding that LspSettingsLocalEdit cannot select multiple default language servers? .vimrc lsp_settingsfiletype must be used as only option?

My use case: For small python project for example pylsp is great as it has a little of everything, but for large projects where pylsp will make vim hang, i have to use pyright w/ ruff. Appears only way to have project level options for which server is active is through repeated editing of .vimrc?