aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/lsp_settings/profile.vim45
-rw-r--r--installer/install-eslint-language-server.cmd13
-rwxr-xr-xinstaller/install-eslint-language-server.sh15
-rw-r--r--installer/install-sqls.cmd3
-rwxr-xr-xinstaller/install-sqls.sh5
-rw-r--r--settings.json3
-rw-r--r--settings/eslint-language-server.vim32
-rw-r--r--settings/sqls.vim13
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