Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Termux & Packaging

The termux-language-server provides advanced support for specialized shell scripts used in Termux, Arch Linux (PKGBUILD), Gentoo (ebuild), and Debian development.

Install

macOS

pip install termux-language-server

Linux

pip install termux-language-server

Windows

pip install termux-language-server

Config

Use file_patterns to add termux-language-server alongside bash-language-server for packaging files:

[lsp.server.termux-language-server]
args = ["--stdio"]
file_patterns = ["PKGBUILD", "*.ebuild", "*.eclass"]

# bash-language-server is built-in — no [lsp.server.bash-language-server] needed

[lsp.language.shellscript]
servers = ["termux-language-server", "bash-language-server"]

termux-language-server handles PKGBUILD and ebuild files with package-specific intelligence. bash-language-server provides shell fundamentals (definition, references, symbols) for all shellscript files. For PKGBUILD files, termux-language-server is tried first; bash-language-server fills in for methods it doesn’t handle. See Dispatch Filtering.

As a standalone server

For the full set of termux-language-server language IDs, define each as a custom language:

[lsp.server.termux-language-server]
args = ["--stdio"]

[lsp.language.pkgbuild]
filenames = ["PKGBUILD"]
servers = ["termux-language-server"]

[lsp.language.ebuild]
extensions = ["ebuild"]
servers = ["termux-language-server"]

[lsp.language.eclass]
extensions = ["eclass"]
servers = ["termux-language-server"]

Add entries for other language IDs as needed (termux, makepkg, devscripts, mdd, subpackage, install, gentoo-make-conf, make.conf, color.map).

Notes

  • This server is specifically designed for packaging and system-level shell scripts
  • Extends the features of bash-language-server for specialized formats
  • Supports file types like PKGBUILD, build.sh, *.ebuild, and *.mdd