doomemacs/modules/lang/sh
Henrik Lissner 6acf163cf7
refactor!: replace smartparens with electric
BREAKING CHANGE: This moves smartparens out of core and formally
deprecates it. The package has been a performance liability and is only
being used for pair management, so the rest of its functionality was
overkill for what we needed it for.

Instead, I'm waiting for electric.el's support for N-character pairs in
Emacs 31. In the meantime, I delegate to yasnippet (later, tempel)
snippets to handle more complex pairs like /* ... */ or <?php ... ?>.

- To restore auto-pairing functionality (which is all Doom was using
  smartparens for, really), enable :emacs (electric +pair). This is not
  a perfect replacement for all of smartparens' capabilities. More
  complex pairing is being relegated to snippets (for example, /* ... */
  and <?php ... ?> comment blocks will soon have snippets for them).

- To restore the old smartparens functionality, enable :config (default
  +smartparens). Keep in mind that this is temporary! In v3, smartparens
  will be removed entirely OR moved to its own module; this hasn't been
  decided yet.

Fix: #5759
Fix: #5894
Fix: #6223
Fix: #8093
Fix: #8620
2026-02-21 17:00:48 -05:00
..
.doommodule feat: add .doommodule files 2024-09-14 20:47:39 -04:00
autoload.el fix(sh): eagerly load sh-script mode when opening a REPL 2023-03-08 20:31:25 -05:00
config.el refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
doctor.el refactor(sh): remove tree-sitter support 2025-08-27 17:32:56 +02:00
packages.el bump: :lang 2026-02-13 16:31:15 -05:00
README.org refactor(sh): remove tree-sitter support 2025-08-27 17:32:56 +02:00

:lang sh

Description   unfold

This module adds support for shell scripting languages (including Powershell and Fish script) to Doom Emacs.

Module flags

+fish
Add syntax highlighting for fish script files.
+lsp
Enable LSP support for sh-mode. Requires doom-module::tools lsp and a langserver (supports bash-language-server).
+powershell
Add syntax highlighting for Powershell script files (.ps1 and .psm1).

Hacks

  • Interpolated variables are fontified.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module has several optional dependencies:

  • shellcheck: Enables advanced shell script linting.
  • bash-language-server: Enables LSP support (with doom-module:+lsp flag).
  • With the doom-module::tools debugger module

    • bashdb: Enables debugging for bash scripts
    • zshdb: Enables debugging for zsh scripts
  • With the doom-module::editor format module

    • shfmt: Enables formatting for {posix,ba,mk}sh scripts

TODO Usage

󱌣 This module has no usage documentation yet. Write some?

TODO Configuration

󱌣 This module has no configuration documentation yet. Write some?

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?