All Projects → bash-lsp → Bash Language Server

bash-lsp / Bash Language Server

Licence: mit
A language server for Bash

Programming Languages

typescript
32286 projects
bash
514 projects

Projects that are alternatives of or similar to Bash Language Server

Ide Php
PHP language support for Atom-IDE
Stars: ✭ 269 (-59.37%)
Mutual labels:  language-server
Terraform Ls
Terraform Language Server
Stars: ✭ 389 (-41.24%)
Mutual labels:  language-server
Language Tools
The Svelte Language Server, and official extensions which use it
Stars: ✭ 516 (-22.05%)
Mutual labels:  language-server
Vscode Yaml
YAML support for VS Code with built-in kubernetes syntax support
Stars: ✭ 293 (-55.74%)
Mutual labels:  language-server
Erlang ls
The Erlang Language Server
Stars: ✭ 363 (-45.17%)
Mutual labels:  language-server
Texlab
An implementation of the Language Server Protocol for LaTeX
Stars: ✭ 402 (-39.27%)
Mutual labels:  language-server
gluon language-server
Language server providing completion for gluon
Stars: ✭ 40 (-93.96%)
Mutual labels:  language-server
Lua Language Server
Lua Language Server coded by Lua
Stars: ✭ 607 (-8.31%)
Mutual labels:  language-server
Efm Langserver
General purpose Language Server
Stars: ✭ 362 (-45.32%)
Mutual labels:  language-server
Ts Graphql Plugin
TypeScript Language Service Plugin for GraphQL developers
Stars: ✭ 479 (-27.64%)
Mutual labels:  language-server
Clangd
clangd language server
Stars: ✭ 293 (-55.74%)
Mutual labels:  language-server
Vscode Haskell
VS Code extension for Haskell, powered by haskell-language-server
Stars: ✭ 311 (-53.02%)
Mutual labels:  language-server
Monaco Languageclient
NPM module to connect Monaco editor with language servers
Stars: ✭ 419 (-36.71%)
Mutual labels:  language-server
Vscode Solargraph
A Visual Studio Code extension for Solargraph.
Stars: ✭ 292 (-55.89%)
Mutual labels:  language-server
Clojure Lsp
Language Server (LSP) for Clojure
Stars: ✭ 547 (-17.37%)
Mutual labels:  language-server
satysfi-language-server
The SATySFi Language Server
Stars: ✭ 26 (-96.07%)
Mutual labels:  language-server
Powershelleditorservices
A common platform for PowerShell development support in any editor or application!
Stars: ✭ 394 (-40.48%)
Mutual labels:  language-server
Kotlin Language Server
Intelligent Kotlin support for any editor/IDE using the Language Server Protocol
Stars: ✭ 650 (-1.81%)
Mutual labels:  language-server
Vim Lsp Settings
Auto configurations for Language Server for vim-lsp
Stars: ✭ 597 (-9.82%)
Mutual labels:  language-server
Typescript Language Server
TypeScript & JavaScript Language Server
Stars: ✭ 462 (-30.21%)
Mutual labels:  language-server

Bash Language Server

Bash language server implementation based on Tree Sitter and its grammar for Bash with explainshell integration.

Features

  • [x] Jump to declaration
  • [x] Find references
  • [x] Code Outline & Show Symbols
  • [x] Highlight occurrences
  • [x] Code completion
  • [x] Simple diagnostics reporting
  • [x] Documentation for flags on hover
  • [x] Workspace symbols
  • [ ] Rename symbol

Installation

npm i -g bash-language-server

If you encounter installation errors, ensure you have node version 8 or newer (node --version).

Clients

The following editors and IDEs have available clients:

Vim

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'],
    \ }

Neovim

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{}

Oni

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"],

Emacs

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))

Development Guide

Please see docs/development-guide for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].