Skip to content

zed-extensions/bash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bash for Zed

Tree Sitter: https://github.com/tree-sitter/tree-sitter-bash

Language Server: https://github.com/bash-lsp/bash-language-server

image.png

shellcheck

The bash-language-server support shellcheck. But you need to install it manually

brew install shellcheck         # macOS
sudo apt-get install shellcheck # ubuntu/debian
sudo pacman -S shellcheck       # Arch Linux
choco install shellcheck        # Windows (chocolatey)

Shellcheck ignores

If you wish to ignore certain ShellCheck warnings in your files you can add an inline comment # shellcheck disable=SC0000 specifying the warning/error.

Alternatively, if you'd like to ignore something for an entire file, put the comment at the top of the file. For example to ignore SC2034 foo appears unused. Verify it or export it. in an .env file it would look like so:

# shellcheck disable=SC2034
FOO=123
BAR="something"
DATABASE_URL="postgres://something"

shfmt

bash-language-server can support formatting using shfmt if it is available in your path. Install with:

brew install shfmt         # macOS
sudo apt-get install shfmt # ubuntu/debian
sudo pacman -S shfmt       # Arch Linux
choco install shfmt        # Windows (chocolatey)

To control automatic formatting, in your Zed settings use format_on_save or manually invoke editor: format document from the command palette.

tldr vs man

bash-language-server use man to show document 👀

The markdown rendering is completely bad

So, let's just use the documentation provided by tldr (it's really a markdown display!)

github: https://github.com/d1ylab/bash-language-server

npm: https://www.npmjs.com/package/neo-bash-ls

After Before
image.png image.png

Apply the patch

diff --git a/src/bash.rs b/src/bash.rs
index d9cdd6b..d8fc8f5 100644
--- a/src/bash.rs
+++ b/src/bash.rs
@@ -1,8 +1,8 @@
 use std::{env, fs};
 use zed_extension_api::{self as zed, Result};

-const SERVER_PATH: &str = "node_modules/bash-language-server/out/cli.js";
-const PACKAGE_NAME: &str = "bash-language-server";
+const SERVER_PATH: &str = "node_modules/neo-bash-ls/out/cli.js";
+const PACKAGE_NAME: &str = "neo-bash-ls";

 struct BashExtension {
     did_find_server: bool,

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages