https://github.com/termux/termux-language-server
🛠️ A language server for some specific bash scripts
https://github.com/termux/termux-language-server
archlinux ebuild gentoo lsp-server makepkg package-manager packaging pacman pkgbuild portage termux
Last synced: 14 days ago
JSON representation
🛠️ A language server for some specific bash scripts
- Host: GitHub
- URL: https://github.com/termux/termux-language-server
- Owner: termux
- License: gpl-3.0
- Created: 2023-09-21T20:16:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-08T22:57:46.000Z (about 1 year ago)
- Last Synced: 2024-04-13T21:07:36.937Z (about 1 year ago)
- Topics: archlinux, ebuild, gentoo, lsp-server, makepkg, package-manager, packaging, pacman, pkgbuild, portage, termux
- Language: Python
- Homepage: https://termux-language-server.readthedocs.io/
- Size: 334 KB
- Stars: 41
- Watchers: 8
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# termux-language-server
[](https://termux-language-server.readthedocs.io)
[](https://results.pre-commit.ci/latest/github/termux/termux-language-server/main)
[](https://github.com/termux/termux-language-server/actions)
[](https://codecov.io/gh/termux/termux-language-server)
[](https://deepsource.io/gh/termux/termux-language-server)[](https://github.com/termux/termux-language-server/releases)
[](https://github.com/termux/termux-language-server/releases/latest)
[](https://github.com/termux/termux-language-server/issues)
[](https://github.com/termux/termux-language-server/issues?q=is%3Aissue+is%3Aclosed)
[](https://github.com/termux/termux-language-server/pulls)
[](https://github.com/termux/termux-language-server/pulls?q=is%3Apr+is%3Aclosed)
[](https://github.com/termux/termux-language-server/discussions)
[](https://github.com/termux/termux-language-server/milestones)
[](https://github.com/termux/termux-language-server/network/members)
[](https://github.com/termux/termux-language-server/stargazers)
[](https://github.com/termux/termux-language-server/watchers)
[](https://github.com/termux/termux-language-server/graphs/contributors)
[](https://github.com/termux/termux-language-server/graphs/commit-activity)
[](https://github.com/termux/termux-language-server/commits)
[](https://github.com/termux/termux-language-server/releases/latest)[](https://github.com/termux/termux-language-server/blob/main/LICENSE)
[](https://github.com/termux/termux-language-server)
[](https://github.com/termux/termux-language-server)
[](https://github.com/termux/termux-language-server)
[](https://github.com/termux/termux-language-server)
[](https://github.com/termux/termux-language-server)
[](https://github.com/termux/termux-language-server)[](https://pypi.org/project/termux-language-server/#description)
[](https://pypi.org/project/termux-language-server/#history)
[](https://pypi.org/project/termux-language-server/#files)
[](https://pypi.org/project/termux-language-server/#files)
[](https://pypi.org/project/termux-language-server/#files)
[](https://pypi.org/project/termux-language-server/#files)Language server for some specific bash scripts:
- Android [Termux](https://termux.dev)
- [`build.sh`](https://github.com/termux/termux-packages/wiki/Creating-new-package)
- [`*.subpackage.sh`](https://github.com/termux/termux-packages/wiki/Creating-new-package#writing-a-subpackage-script)
- [ArchLinux](https://archlinux.org)/Windows [Msys2](https://msys2.org)
- [`PKGBUILD`](https://wiki.archlinux.org/title/PKGBUILD)
- [`*.install`](https://wiki.archlinux.org/title/PKGBUILD#install)
- [`makepkg.conf`](https://man.archlinux.org/man/makepkg.conf.5.en)
- [Gentoo](https://www.gentoo.org/)
- [`*.ebuild`](https://dev.gentoo.org/~zmedico/portage/doc/man/ebuild.5.html)
- `*.eclass`
- [`make.conf`](https://dev.gentoo.org/~zmedico/portage/doc/man/make.conf.5.html)
- [`color.map`](https://dev.gentoo.org/~zmedico/portage/doc/man/color.map.5.html)
- Debian/Ubuntu
- [`devscripts.conf` and `.devscripts`](https://manpages.ubuntu.com/manpages/bionic/man5/devscripts.conf.5.html)
- zsh
- [`*.mdd`](https://github.com/zsh-users/zsh/blob/57248b88830ce56adc243a40c7773fb3825cab34/Etc/zsh-development-guide#L285-L288)This language server only provides extra features which
[bash-language-server](https://github.com/bash-lsp/bash-language-server)
doesn't support:- [x] [Diagnostic](https://microsoft.github.io/language-server-protocol/specifications/specification-current#diagnostic):
- [x] error
- [x] required variables
- [x] variable type: string/array/function
- [x] variable values
- [x] warning
- [x] variable order
- [x] unsorted values
- [x] style check
- [x] `PKGBUILD`: by [namcap](https://wiki.archlinux.org/title/Namcap)
- [x] [Document Formatting](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_formatting):
- [x] sort variables
- [x] sort values
- [x] [Document Link](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_documentLink):
- [x] `build.sh`:
- [x] `PKGBUILD`:
- [x] ArchLinux:
- [x] Windows Msys2:
- [ ] `ebuild`:
- [x] [Hover](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_hover)
- [x] [Completion](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_completion)
- [x] builtin variables
- [x] package names
- [ ] `build.sh`
- [x] `PKGBUILD`: by [pyalpm](https://github.com/ornitorrincos/pyalpm)
- [ ] `ebuild`
- [ ] [Code Action](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_codeAction)
- [ ] `PKGBUILD`
- [ ] generate a template by the name of directory containing `PKGBUILD`, the
templates comes from:
- [ ] customized by user
- [ ] [pip2pkgbuild](https://github.com/wenLiangcan/pip2pkgbuild)
- [ ] [cpan2aur](https://metacpan.org/release/CPANPLUS-Dist-Arch)
- [ ] [gem2arch](https://github.com/anatol/gem2arch)
- [ ] [arch-hs](https://github.com/berberman/arch-hs)
- [ ] update `.SRCINFO` by `makepkg --printsrcinfo > .SRCINFO`
- [ ] update `pkgsums` by [`updpkgsums`](https://gitlab.archlinux.org/pacman/pacman-contrib)
- [ ] update version by a `nvcheck.toml` to tell this
program where to search new version:```toml
[package_name]
source = "github"
github = "author_name/repo_name"
use_max_tag = true
```Other features:
- [x] [pre-commit-hooks](https://pre-commit.com/)
- [x] linter
- [x] formatter## Screenshots
### Diagnostic

### Document Link

### Hover


### Completion




## How Does It Work
See [here](https://github.com/neomutt/lsp-tree-sitter#usage).
Read
[](https://termux-language-server.readthedocs.io)
to know more.