mirror of
https://oauth2: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@github.com/m1ngsama/chopsticks.git
synced 2026-05-10 19:10:59 +08:00
Expand LSP and lint coverage for full-stack languages (fixes #6)
ALE linters: - Add css/scss: stylelint - Add markdown: markdownlint - Add sql: sqlfluff ALE fixers: - Add scss, less: prettier - Add sql: sqlfmt vim-lsp fallback (no Node.js path): - Add html, css, scss, json, yaml: vscode language servers - Add markdown: marksman - Add sql: sqls install.sh (CoC path): - Add coc-go, coc-rust-analyzer, coc-marksman, coc-sql to auto-install - Expand optional tools section with stylelint, markdownlint, sqlfluff, marksman
This commit is contained in:
parent
323bf4a6b3
commit
ca4c683b18
2 changed files with 39 additions and 22 deletions
50
.vimrc
50
.vimrc
|
|
@ -513,28 +513,35 @@ let g:gitgutter_sign_modified_removed = '~'
|
||||||
|
|
||||||
" --- ALE (Asynchronous Lint Engine) ---
|
" --- ALE (Asynchronous Lint Engine) ---
|
||||||
let g:ale_linters = {
|
let g:ale_linters = {
|
||||||
\ 'python': ['flake8', 'pylint'],
|
\ 'python': ['flake8', 'pylint'],
|
||||||
\ 'javascript': ['eslint'],
|
\ 'javascript': ['eslint'],
|
||||||
\ 'typescript': ['eslint', 'tsserver'],
|
\ 'typescript': ['eslint', 'tsserver'],
|
||||||
\ 'go': ['gopls', 'golint'],
|
\ 'go': ['gopls', 'golint'],
|
||||||
\ 'rust': ['cargo'],
|
\ 'rust': ['cargo'],
|
||||||
\ 'sh': ['shellcheck'],
|
\ 'sh': ['shellcheck'],
|
||||||
\ 'yaml': ['yamllint'],
|
\ 'yaml': ['yamllint'],
|
||||||
\ 'dockerfile': ['hadolint'],
|
\ 'dockerfile': ['hadolint'],
|
||||||
|
\ 'css': ['stylelint'],
|
||||||
|
\ 'scss': ['stylelint'],
|
||||||
|
\ 'markdown': ['markdownlint'],
|
||||||
|
\ 'sql': ['sqlfluff'],
|
||||||
\}
|
\}
|
||||||
|
|
||||||
let g:ale_fixers = {
|
let g:ale_fixers = {
|
||||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||||
\ 'python': ['black', 'isort'],
|
\ 'python': ['black', 'isort'],
|
||||||
\ 'javascript': ['prettier', 'eslint'],
|
\ 'javascript': ['prettier', 'eslint'],
|
||||||
\ 'typescript': ['prettier', 'eslint'],
|
\ 'typescript': ['prettier', 'eslint'],
|
||||||
\ 'go': ['gofmt', 'goimports'],
|
\ 'go': ['gofmt', 'goimports'],
|
||||||
\ 'rust': ['rustfmt'],
|
\ 'rust': ['rustfmt'],
|
||||||
\ 'json': ['prettier'],
|
\ 'json': ['prettier'],
|
||||||
\ 'yaml': ['prettier'],
|
\ 'yaml': ['prettier'],
|
||||||
\ 'html': ['prettier'],
|
\ 'html': ['prettier'],
|
||||||
\ 'css': ['prettier'],
|
\ 'css': ['prettier'],
|
||||||
\ 'markdown': ['prettier'],
|
\ 'scss': ['prettier'],
|
||||||
|
\ 'less': ['prettier'],
|
||||||
|
\ 'markdown': ['prettier'],
|
||||||
|
\ 'sql': ['sqlfmt'],
|
||||||
\}
|
\}
|
||||||
|
|
||||||
" Don't fix on save if LSP is handling formatting (avoids double-format)
|
" Don't fix on save if LSP is handling formatting (avoids double-format)
|
||||||
|
|
@ -670,12 +677,19 @@ endif
|
||||||
" --- vim-lsp (Native VimScript LSP - fallback when Node.js unavailable) ---
|
" --- vim-lsp (Native VimScript LSP - fallback when Node.js unavailable) ---
|
||||||
if g:use_vimlsp
|
if g:use_vimlsp
|
||||||
" Auto-configure language servers via vim-lsp-settings
|
" Auto-configure language servers via vim-lsp-settings
|
||||||
let g:lsp_settings_filetype_python = ['pylsp', 'pyright-langserver']
|
let g:lsp_settings_filetype_python = ['pylsp', 'pyright-langserver']
|
||||||
let g:lsp_settings_filetype_go = ['gopls']
|
let g:lsp_settings_filetype_go = ['gopls']
|
||||||
let g:lsp_settings_filetype_rust = ['rust-analyzer']
|
let g:lsp_settings_filetype_rust = ['rust-analyzer']
|
||||||
let g:lsp_settings_filetype_typescript = ['typescript-language-server']
|
let g:lsp_settings_filetype_typescript = ['typescript-language-server']
|
||||||
let g:lsp_settings_filetype_javascript = ['typescript-language-server']
|
let g:lsp_settings_filetype_javascript = ['typescript-language-server']
|
||||||
let g:lsp_settings_filetype_sh = ['bash-language-server']
|
let g:lsp_settings_filetype_sh = ['bash-language-server']
|
||||||
|
let g:lsp_settings_filetype_html = ['vscode-html-language-server']
|
||||||
|
let g:lsp_settings_filetype_css = ['vscode-css-language-server']
|
||||||
|
let g:lsp_settings_filetype_scss = ['vscode-css-language-server']
|
||||||
|
let g:lsp_settings_filetype_json = ['vscode-json-language-server']
|
||||||
|
let g:lsp_settings_filetype_yaml = ['yaml-language-server']
|
||||||
|
let g:lsp_settings_filetype_markdown = ['marksman']
|
||||||
|
let g:lsp_settings_filetype_sql = ['sqls']
|
||||||
|
|
||||||
" Performance: disable virtual text diagnostics in TTY
|
" Performance: disable virtual text diagnostics in TTY
|
||||||
let g:lsp_diagnostics_virtual_text_enabled = !g:is_tty
|
let g:lsp_diagnostics_virtual_text_enabled = !g:is_tty
|
||||||
|
|
|
||||||
11
install.sh
11
install.sh
|
|
@ -94,9 +94,8 @@ if [ "$HAS_NODE" -eq 1 ]; then
|
||||||
echo
|
echo
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
step "Installing CoC language servers"
|
step "Installing CoC language servers"
|
||||||
vim +'CocInstall -sync coc-json coc-tsserver coc-pyright coc-sh coc-html coc-css coc-yaml' +qall
|
vim +'CocInstall -sync coc-json coc-tsserver coc-pyright coc-sh coc-html coc-css coc-yaml coc-go coc-rust-analyzer coc-marksman coc-sql' +qall
|
||||||
ok "CoC language servers installed"
|
ok "CoC language servers installed"
|
||||||
echo " Add more with :CocInstall coc-go coc-rust-analyzer etc."
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo " To enable LSP without Node.js:"
|
echo " To enable LSP without Node.js:"
|
||||||
|
|
@ -126,11 +125,15 @@ echo " ctags (F8 tag browser)"
|
||||||
echo " Ubuntu: sudo apt install universal-ctags"
|
echo " Ubuntu: sudo apt install universal-ctags"
|
||||||
echo " macOS: brew install universal-ctags"
|
echo " macOS: brew install universal-ctags"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Language linters:"
|
echo " Language linters and formatters:"
|
||||||
echo " Python: pip install black flake8 pylint isort"
|
echo " Python: pip install black flake8 pylint isort"
|
||||||
echo " JS/TS: npm install -g prettier eslint typescript"
|
echo " JS/TS: npm install -g prettier eslint typescript"
|
||||||
echo " Go: go install golang.org/x/tools/gopls@latest"
|
echo " Go: go install golang.org/x/tools/gopls@latest"
|
||||||
echo " Shell: sudo apt install shellcheck"
|
echo " Shell: sudo apt install shellcheck # or: brew install shellcheck"
|
||||||
|
echo " CSS/SCSS: npm install -g stylelint stylelint-config-standard"
|
||||||
|
echo " Markdown: npm install -g markdownlint-cli"
|
||||||
|
echo " SQL: pip install sqlfluff | npm install -g sqlfmt"
|
||||||
|
echo " Markdown LS: brew install marksman # or: https://github.com/artempyanykh/marksman"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Getting started:"
|
echo "Getting started:"
|
||||||
echo " See QUICKSTART.md for the 5-minute guide"
|
echo " See QUICKSTART.md for the 5-minute guide"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue