mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-24 19:10:24 +00:00
docs: Add Shell Script language documentation (#23248)
This commit is contained in:
parent
ffc6b7b102
commit
8e1ad7d475
3 changed files with 82 additions and 7 deletions
|
@ -55,6 +55,7 @@ Zed supports hundreds of programming languages and text formats. Some work out-o
|
||||||
- [Rust](./languages/rust.md)
|
- [Rust](./languages/rust.md)
|
||||||
- [Scala](./languages/scala.md)
|
- [Scala](./languages/scala.md)
|
||||||
- [Scheme](./languages/scheme.md)
|
- [Scheme](./languages/scheme.md)
|
||||||
|
- [Shell Script](./languages/sh.md)
|
||||||
- [Svelte](./languages/svelte.md)
|
- [Svelte](./languages/svelte.md)
|
||||||
- [Swift](./languages/swift.md)
|
- [Swift](./languages/swift.md)
|
||||||
- [TailwindCSS](./languages/tailwindcss.md)
|
- [TailwindCSS](./languages/tailwindcss.md)
|
||||||
|
|
|
@ -8,17 +8,29 @@ Report issues to: [https://github.com/d1y/bash.zed/issues](https://github.com/d1
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
The bash-language-server support shellcheck. But you need to install it manually:
|
When `shellcheck` is available `bash-language-server` will use it internally to provide diagnostics.
|
||||||
|
|
||||||
|
### Install `shellcheck`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# macOS
|
brew install shellcheck # macOS (HomeBrew)
|
||||||
brew install shellcheck
|
apt-get install shellcheck # Ubuntu/Debian
|
||||||
|
pacman -S shellcheck # ArchLinux
|
||||||
|
dnf install shellcheck # Fedora
|
||||||
|
yum install shellcheck # CentOS/RHEL
|
||||||
|
zypper install shellcheck # openSUSE
|
||||||
|
choco install shellcheck # Windows (Chocolatey)
|
||||||
|
```
|
||||||
|
|
||||||
# Ubuntu/Debian
|
And verify it is available from your path:
|
||||||
sudo apt-get install shellcheck
|
|
||||||
|
|
||||||
# Arch Linux
|
```sh
|
||||||
pacman -S shellcheck
|
which shellcheck
|
||||||
|
shellcheck --version
|
||||||
```
|
```
|
||||||
|
|
||||||
If you wish to customize the warnings/errors reported you just need to create a `.shellcheckrc` file. You can do this in the root of your project or in your home directory (`~/.shellcheckrc`). See: [shellcheck documentation](https://github.com/koalaman/shellcheck/wiki/Ignore#ignoring-one-or-more-types-of-errors-forever) for more.
|
If you wish to customize the warnings/errors reported you just need to create a `.shellcheckrc` file. You can do this in the root of your project or in your home directory (`~/.shellcheckrc`). See: [shellcheck documentation](https://github.com/koalaman/shellcheck/wiki/Ignore#ignoring-one-or-more-types-of-errors-forever) for more.
|
||||||
|
|
||||||
|
### See also:
|
||||||
|
|
||||||
|
- [Zed Docs: Language Support: Shell Scripts](./sh.md)
|
||||||
|
|
62
docs/src/languages/sh.md
Normal file
62
docs/src/languages/sh.md
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# Shell Scripts
|
||||||
|
|
||||||
|
Shell Scripts (bash, zsh, dash, sh) are supported natively by Zed.
|
||||||
|
|
||||||
|
- Tree Sitter: [tree-sitter/tree-sitter-bash](https://github.com/tree-sitter/tree-sitter-bash)
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
|
||||||
|
You can configure various settings for Shell Scripts in your Zed User Settings (`~/.config/zed/settings.json`) or Zed Project Settings (`.zed/settings.json`):
|
||||||
|
|
||||||
|
```json
|
||||||
|
"languages": {
|
||||||
|
"Shell Script": {
|
||||||
|
"tab_size": 2,
|
||||||
|
"hard_tabs": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Formatting
|
||||||
|
|
||||||
|
Zed supports auto-formatting Shell Scripts using external tools like [`shfmt`](https://github.com/patrickvane/shfmt).
|
||||||
|
|
||||||
|
1. Install `shfmt`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
brew install shfmt # macos (homebrew)
|
||||||
|
sudo apt-get install shfmt # debian/ubuntu
|
||||||
|
dnf install shfmt # fedora
|
||||||
|
yum install shfmt # redhat
|
||||||
|
pacman -Sy shfmt # archlinux
|
||||||
|
choco install shfmt # windows (chocolatey)
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Ensure `shfmt` is available in your path and check the version:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
which shfmt
|
||||||
|
shfmt --version
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Configure Zed to automatically format Shell Scripts with `shfmt` on save:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"languages": {
|
||||||
|
"Shell Script": {
|
||||||
|
"format_on_save": "on",
|
||||||
|
"formatter": {
|
||||||
|
"external": {
|
||||||
|
"command": "shfmt",
|
||||||
|
// Change `--indent 2` to match your preferred tab_size
|
||||||
|
"arguments": ["--filename", "{buffer_path}", "--indent", "2"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## See also:
|
||||||
|
|
||||||
|
- [Zed Docs: Language Support: Bash](./bash.md)
|
||||||
|
- [Zed Docs: Language Support: Fish](./fish.md)
|
Loading…
Reference in a new issue