Bash language server implementation based on Tree Sitter and its grammar for Bash and supports explainshell and shellcheck.
We strongly recommend that you install shellcheck to enable linting: https://github.com/koalaman/shellcheck#installing
npm i -g bash-language-server
If you encounter installation errors, ensure you have node version 12 or newer (node --version
).
The following editors and IDEs have available clients:
For Vim 8 or later install the plugin prabirshrestha/vim-lsp and add the following configuration to .vimrc
:
if executable('bash-language-server')
au User lsp_setup call lsp#register_server({
\ 'name': 'bash-language-server',
\ 'cmd': {server_info->[&shell, &shellcmdflag, 'bash-language-server start']},
\ 'allowlist': ['sh'],
\ })
endif
For Vim 8 or Neovim using neoclide/coc.nvim, according to it's Wiki article, add the following to your coc-settings.json
:
"languageserver": {
"bash": {
"command": "bash-language-server",
"args": ["start"],
"filetypes": ["sh"],
"ignoredRootPaths": ["~"]
}
}
For Vim 8 or NeoVim using dense-analysis/ale add the following
configuration to your .vimrc
:
let g:ale_linters = {
\ 'sh': ['language_server'],
\ }
For NeoVim using autozimu/LanguageClient-neovim, add the following configuration to
init.vim
:
let g:LanguageClient_serverCommands = {
\ 'sh': ['bash-language-server', 'start']
\ }
For NeoVim v0.5(nightly) using its built-in lsp, install neovim/nvim-lspconfig and add the following configuration to either your init.vim
or init.lua
init.vim
:
lua require'lspconfig'.bashls.setup{}
or
init.lua
:
require'lspconfig'.bashls.setup{}
For Vim8/NeoVim v0.5 using jayli/vim-easycomplete. Execute :InstallLspServer sh
and config nothing. Maybe it's the easiest way to use bash-language-server in vim/nvim.
On the config file (File -> Preferences -> Edit Oni config
) add the following configuration:
"language.bash.languageServer.command": "bash-language-server",
"language.bash.languageServer.arguments": ["start"],
Lsp-mode has a built-in client, can be installed by use-package
.
Add the configuration to your .emacs.d/init.el
(use-package lsp-mode
:commands lsp
:hook
(sh-mode . lsp))
Please see docs/development-guide for more information.
Version | Tag | Published |
---|---|---|
3.0.3 | latest | 1d ago |