diff options
-rw-r--r-- | autoload/lsp_settings/profile.vim | 45 | ||||
-rw-r--r-- | installer/install-eslint-language-server.cmd | 13 | ||||
-rwxr-xr-x | installer/install-eslint-language-server.sh | 15 | ||||
-rw-r--r-- | installer/install-sqls.cmd | 3 | ||||
-rwxr-xr-x | installer/install-sqls.sh | 5 | ||||
-rw-r--r-- | settings.json | 3 | ||||
-rw-r--r-- | settings/eslint-language-server.vim | 32 | ||||
-rw-r--r-- | settings/sqls.vim | 13 |
8 files changed, 110 insertions, 19 deletions
diff --git a/autoload/lsp_settings/profile.vim b/autoload/lsp_settings/profile.vim index 4567f07..98bf7b2 100644 --- a/autoload/lsp_settings/profile.vim +++ b/autoload/lsp_settings/profile.vim @@ -41,27 +41,34 @@ let s:color_map = { function! lsp_settings#profile#status() abort let l:settings = lsp_settings#settings() let l:active_servers = lsp#get_whitelisted_servers() + + let l:servers = [] for l:ft in keys(l:settings) - let l:servers = l:settings[l:ft] - for l:v in l:servers - if index(l:active_servers, l:v.command) != -1 - let l:status = lsp#get_server_status(l:v.command) - echon l:v.command . ': ' - exec 'echohl' s:color_map[l:status] - echon l:status - echohl None - elseif lsp_settings#executable(l:v.command) - echon l:v.command . ': ' - echohl vimFilter - echon 'not running' - echohl None - else - echon l:v.command . ': ' - echohl vimOption - echon 'not installed' - echohl None + for l:v in l:settings[l:ft] + if index(l:servers, l:v.command) ==# -1 + call add(l:servers, l:v.command) endif - echo '' endfor endfor + + for l:server in uniq(sort(l:servers)) + if index(l:active_servers, l:server) != -1 + let l:status = lsp#get_server_status(l:server) + echon l:server . ': ' + exec 'echohl' s:color_map[l:status] + echon l:status + echohl None + elseif lsp_settings#executable(l:server) + echon l:server . ': ' + echohl vimFilter + echon 'not running' + echohl None + else + echon l:server . ': ' + echohl vimOption + echon 'not installed' + echohl None + endif + echo '' + endfor endfunction diff --git a/installer/install-eslint-language-server.cmd b/installer/install-eslint-language-server.cmd new file mode 100644 index 0000000..846638d --- /dev/null +++ b/installer/install-eslint-language-server.cmd @@ -0,0 +1,13 @@ +@echo off + +git clone "https://github.com/microsoft/vscode-eslint" . +git checkout release/1.9.1 +call npm install +call npm run compile:server + +echo @echo off ^ + +node %%~dp0\server\out\eslintServer.js --stdio %%* ^ + +> eslint-language-server.cmd + diff --git a/installer/install-eslint-language-server.sh b/installer/install-eslint-language-server.sh new file mode 100755 index 0000000..05beeb3 --- /dev/null +++ b/installer/install-eslint-language-server.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +git clone "https://github.com/microsoft/vscode-eslint" . +git checkout release/1.9.1 +npm install +npm run compile:server + +cat <<EOF >eslint-language-server +#!/usr/bin/env bash + +DIR=\$(cd \$(dirname \$0); pwd) +node \$DIR/server/out/eslintServer.js --stdio \$* +EOF + +chmod +x eslint-language-server diff --git a/installer/install-sqls.cmd b/installer/install-sqls.cmd new file mode 100644 index 0000000..f649037 --- /dev/null +++ b/installer/install-sqls.cmd @@ -0,0 +1,3 @@ +@echo off
+
+call "%~dp0\go_install.cmd" github.com/lighttiger2505/sqls
diff --git a/installer/install-sqls.sh b/installer/install-sqls.sh new file mode 100755 index 0000000..03f4628 --- /dev/null +++ b/installer/install-sqls.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -e + +"$(dirname "$0")/go_install.sh" github.com/lighttiger2505/sqls diff --git a/settings.json b/settings.json index 7d0c068..97543e4 100644 --- a/settings.json +++ b/settings.json @@ -507,6 +507,9 @@ ] }, { + "config": { + "refresh_pattern": "\\( \\zs\\k*\\|[a-zA-Z0-9_-]\\+\\)$" + }, "command": "sqls", "requires": [ "go" diff --git a/settings/eslint-language-server.vim b/settings/eslint-language-server.vim new file mode 100644 index 0000000..eed9082 --- /dev/null +++ b/settings/eslint-language-server.vim @@ -0,0 +1,32 @@ +augroup vimlsp_settings_eslint_language_server + au! + LspRegisterServer { + \ 'name': 'eslint-language-server', + \ 'cmd': {server_info->lsp_settings#get('eslint-language-server', 'cmd', [lsp_settings#exec_path('eslint-language-server'), '--stdio'])}, + \ 'root_uri':{server_info->lsp_settings#get('eslint-language-server', 'root_uri', lsp_settings#root_uri(['package.json', 'tsconfig.json']))}, + \ 'initialization_options': lsp_settings#get('eslint-language-server', 'initialization_options', {'diagnostics': 'true'}), + \ 'whitelist': lsp_settings#get('eslint-language-server', 'whitelist', ['javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'typescript.tsx']), + \ 'blacklist': lsp_settings#get('eslint-language-server', 'blacklist', []), + \ 'config': lsp_settings#get('eslint-language-server', 'config', lsp_settings#server_config('eslint-language-server')), + \ 'workspace_config': { + \ 'validate': v:true, + \ 'packageManager': 'npm', + \ 'autoFix': v:true, + \ 'autoFixOnSave': v:true, + \ 'options': {}, + \ 'run': 'onType', + \ 'nodePath': v:null, + \ 'quiet': v:false, + \ 'workspaceFolder': v:null, + \ 'codeAction': { + \ 'disableRuleComment': { + \ 'enable': v:true, + \ 'location': 'separateLine' + \ }, + \ 'showDocumentation': { + \ 'enable': v:true + \ } + \ } + \ }, + \ } +augroup END diff --git a/settings/sqls.vim b/settings/sqls.vim new file mode 100644 index 0000000..a80e6ab --- /dev/null +++ b/settings/sqls.vim @@ -0,0 +1,13 @@ +augroup vimlsp_settings_sqls + au! + LspRegisterServer { + \ 'name': 'sqls', + \ 'cmd': {server_info->lsp_settings#get('sqls', 'cmd', [lsp_settings#exec_path('sqls')])}, + \ 'root_uri':{server_info->lsp_settings#get('sqls', 'root_uri', lsp_settings#root_uri())}, + \ 'initialization_options': lsp_settings#get('sqls', 'initialization_options', v:null), + \ 'whitelist': lsp_settings#get('sqls', 'whitelist', ['sql']), + \ 'blacklist': lsp_settings#get('sqls', 'blacklist', []), + \ 'config': lsp_settings#get('sqls', 'config', lsp_settings#server_config('sqls')), + \ 'workspace_config': lsp_settings#get('sqls', 'workspace_config', {}), + \ } +augroup END |