{"id":13606545,"url":"https://github.com/termux/termux-language-server","last_synced_at":"2025-04-10T23:32:03.884Z","repository":{"id":196198897,"uuid":"694845616","full_name":"termux/termux-language-server","owner":"termux","description":"🛠️ A language server for some specific bash scripts","archived":false,"fork":false,"pushed_at":"2024-04-08T22:57:46.000Z","size":342,"stargazers_count":41,"open_issues_count":1,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-04-13T21:07:36.937Z","etag":null,"topics":["archlinux","ebuild","gentoo","lsp-server","makepkg","package-manager","packaging","pacman","pkgbuild","portage","termux"],"latest_commit_sha":null,"homepage":"https://termux-language-server.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/termux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"patreon":"user?u=83975719","custom":["https://user-images.githubusercontent.com/32936898/199681341-1c5cfa61-4411-4b67-b268-7cd87c5867bb.png","https://user-images.githubusercontent.com/32936898/199681363-1094a0be-85ca-49cf-a410-19b3d7965120.png","https://user-images.githubusercontent.com/32936898/199681368-c34c2be7-e0d8-43ea-8c2c-d3e865da6aeb.png"]}},"created_at":"2023-09-21T20:16:32.000Z","updated_at":"2024-04-15T05:45:32.751Z","dependencies_parsed_at":"2023-12-15T02:17:48.105Z","dependency_job_id":"733bcf30-0baa-4b12-b912-78e7db4764ef","html_url":"https://github.com/termux/termux-language-server","commit_stats":{"total_commits":98,"total_committers":1,"mean_commits":98.0,"dds":0.0,"last_synced_commit":"19f71611bbc67520e14d23f65692971d20bc45c8"},"previous_names":["termux/termux-language-server"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termux%2Ftermux-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termux%2Ftermux-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termux%2Ftermux-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/termux%2Ftermux-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/termux","download_url":"https://codeload.github.com/termux/termux-language-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247953984,"owners_count":21024132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archlinux","ebuild","gentoo","lsp-server","makepkg","package-manager","packaging","pacman","pkgbuild","portage","termux"],"created_at":"2024-08-01T19:01:10.072Z","updated_at":"2025-04-10T23:32:03.865Z","avatar_url":"https://github.com/termux.png","language":"Python","funding_links":["https://patreon.com/user?u=83975719","https://user-images.githubusercontent.com/32936898/199681341-1c5cfa61-4411-4b67-b268-7cd87c5867bb.png","https://user-images.githubusercontent.com/32936898/199681363-1094a0be-85ca-49cf-a410-19b3d7965120.png","https://user-images.githubusercontent.com/32936898/199681368-c34c2be7-e0d8-43ea-8c2c-d3e865da6aeb.png"],"categories":["Python"],"sub_categories":[],"readme":"# termux-language-server\n\n[![readthedocs](https://shields.io/readthedocs/termux-language-server)](https://termux-language-server.readthedocs.io)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/termux/termux-language-server/main.svg)](https://results.pre-commit.ci/latest/github/termux/termux-language-server/main)\n[![github/workflow](https://github.com/termux/termux-language-server/actions/workflows/main.yml/badge.svg)](https://github.com/termux/termux-language-server/actions)\n[![codecov](https://codecov.io/gh/termux/termux-language-server/branch/main/graph/badge.svg)](https://codecov.io/gh/termux/termux-language-server)\n[![DeepSource](https://deepsource.io/gh/termux/termux-language-server.svg/?show_trend=true)](https://deepsource.io/gh/termux/termux-language-server)\n\n[![github/downloads](https://shields.io/github/downloads/termux/termux-language-server/total)](https://github.com/termux/termux-language-server/releases)\n[![github/downloads/latest](https://shields.io/github/downloads/termux/termux-language-server/latest/total)](https://github.com/termux/termux-language-server/releases/latest)\n[![github/issues](https://shields.io/github/issues/termux/termux-language-server)](https://github.com/termux/termux-language-server/issues)\n[![github/issues-closed](https://shields.io/github/issues-closed/termux/termux-language-server)](https://github.com/termux/termux-language-server/issues?q=is%3Aissue+is%3Aclosed)\n[![github/issues-pr](https://shields.io/github/issues-pr/termux/termux-language-server)](https://github.com/termux/termux-language-server/pulls)\n[![github/issues-pr-closed](https://shields.io/github/issues-pr-closed/termux/termux-language-server)](https://github.com/termux/termux-language-server/pulls?q=is%3Apr+is%3Aclosed)\n[![github/discussions](https://shields.io/github/discussions/termux/termux-language-server)](https://github.com/termux/termux-language-server/discussions)\n[![github/milestones](https://shields.io/github/milestones/all/termux/termux-language-server)](https://github.com/termux/termux-language-server/milestones)\n[![github/forks](https://shields.io/github/forks/termux/termux-language-server)](https://github.com/termux/termux-language-server/network/members)\n[![github/stars](https://shields.io/github/stars/termux/termux-language-server)](https://github.com/termux/termux-language-server/stargazers)\n[![github/watchers](https://shields.io/github/watchers/termux/termux-language-server)](https://github.com/termux/termux-language-server/watchers)\n[![github/contributors](https://shields.io/github/contributors/termux/termux-language-server)](https://github.com/termux/termux-language-server/graphs/contributors)\n[![github/commit-activity](https://shields.io/github/commit-activity/w/termux/termux-language-server)](https://github.com/termux/termux-language-server/graphs/commit-activity)\n[![github/last-commit](https://shields.io/github/last-commit/termux/termux-language-server)](https://github.com/termux/termux-language-server/commits)\n[![github/release-date](https://shields.io/github/release-date/termux/termux-language-server)](https://github.com/termux/termux-language-server/releases/latest)\n\n[![github/license](https://shields.io/github/license/termux/termux-language-server)](https://github.com/termux/termux-language-server/blob/main/LICENSE)\n[![github/languages](https://shields.io/github/languages/count/termux/termux-language-server)](https://github.com/termux/termux-language-server)\n[![github/languages/top](https://shields.io/github/languages/top/termux/termux-language-server)](https://github.com/termux/termux-language-server)\n[![github/directory-file-count](https://shields.io/github/directory-file-count/termux/termux-language-server)](https://github.com/termux/termux-language-server)\n[![github/code-size](https://shields.io/github/languages/code-size/termux/termux-language-server)](https://github.com/termux/termux-language-server)\n[![github/repo-size](https://shields.io/github/repo-size/termux/termux-language-server)](https://github.com/termux/termux-language-server)\n[![github/v](https://shields.io/github/v/release/termux/termux-language-server)](https://github.com/termux/termux-language-server)\n\n[![pypi/status](https://shields.io/pypi/status/termux-language-server)](https://pypi.org/project/termux-language-server/#description)\n[![pypi/v](https://shields.io/pypi/v/termux-language-server)](https://pypi.org/project/termux-language-server/#history)\n[![pypi/downloads](https://shields.io/pypi/dd/termux-language-server)](https://pypi.org/project/termux-language-server/#files)\n[![pypi/format](https://shields.io/pypi/format/termux-language-server)](https://pypi.org/project/termux-language-server/#files)\n[![pypi/implementation](https://shields.io/pypi/implementation/termux-language-server)](https://pypi.org/project/termux-language-server/#files)\n[![pypi/pyversions](https://shields.io/pypi/pyversions/termux-language-server)](https://pypi.org/project/termux-language-server/#files)\n\nLanguage server for some specific bash scripts:\n\n- Android [Termux](https://termux.dev)\n  - [`build.sh`](https://github.com/termux/termux-packages/wiki/Creating-new-package)\n  - [`*.subpackage.sh`](https://github.com/termux/termux-packages/wiki/Creating-new-package#writing-a-subpackage-script)\n- [ArchLinux](https://archlinux.org)/Windows [Msys2](https://msys2.org)\n  - [`PKGBUILD`](https://wiki.archlinux.org/title/PKGBUILD)\n  - [`*.install`](https://wiki.archlinux.org/title/PKGBUILD#install)\n  - [`makepkg.conf`](https://man.archlinux.org/man/makepkg.conf.5.en)\n- [Gentoo](https://www.gentoo.org/)\n  - [`*.ebuild`](https://dev.gentoo.org/~zmedico/portage/doc/man/ebuild.5.html)\n  - `*.eclass`\n  - [`make.conf`](https://dev.gentoo.org/~zmedico/portage/doc/man/make.conf.5.html)\n  - [`color.map`](https://dev.gentoo.org/~zmedico/portage/doc/man/color.map.5.html)\n- Debian/Ubuntu\n  - [`devscripts.conf` and `.devscripts`](https://manpages.ubuntu.com/manpages/bionic/man5/devscripts.conf.5.html)\n- zsh\n  - [`*.mdd`](https://github.com/zsh-users/zsh/blob/57248b88830ce56adc243a40c7773fb3825cab34/Etc/zsh-development-guide#L285-L288)\n\nThis language server only provides extra features which\n[bash-language-server](https://github.com/bash-lsp/bash-language-server)\ndoesn't support:\n\n- [x] [Diagnostic](https://microsoft.github.io/language-server-protocol/specifications/specification-current#diagnostic):\n  - [x] error\n    - [x] required variables\n    - [x] variable type: string/array/function\n    - [x] variable values\n  - [x] warning\n    - [x] variable order\n    - [x] unsorted values\n    - [x] style check\n      - [x] `PKGBUILD`: by [namcap](https://wiki.archlinux.org/title/Namcap)\n- [x] [Document Formatting](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_formatting):\n  - [x] sort variables\n  - [x] sort values\n- [x] [Document Link](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_documentLink):\n  - [x] `build.sh`: \u003chttps://github.com/termux/termux-packages/tree/master/packages/package_name/build.sh\u003e\n  - [x] `PKGBUILD`:\n    - [x] ArchLinux: \u003chttps://archlinux.org/packages/package_name\u003e\n    - [x] Windows Msys2: \u003chttps://packages.msys2.org/base/package_name\u003e\n  - [ ] `ebuild`: \u003chttps://packages.gentoo.org/packages/package_name\u003e\n- [x] [Hover](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_hover)\n- [x] [Completion](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_completion)\n  - [x] builtin variables\n  - [x] package names\n    - [ ] `build.sh`\n    - [x] `PKGBUILD`: by [pyalpm](https://github.com/ornitorrincos/pyalpm)\n    - [ ] `ebuild`\n- [ ] [Code Action](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_codeAction)\n  - [ ] `PKGBUILD`\n    - [ ] generate a template by the name of directory containing `PKGBUILD`, the\n      templates comes from:\n      - [ ] customized by user\n      - [ ] [pip2pkgbuild](https://github.com/wenLiangcan/pip2pkgbuild)\n      - [ ] [cpan2aur](https://metacpan.org/release/CPANPLUS-Dist-Arch)\n      - [ ] [gem2arch](https://github.com/anatol/gem2arch)\n      - [ ] [arch-hs](https://github.com/berberman/arch-hs)\n    - [ ] update `.SRCINFO` by `makepkg --printsrcinfo \u003e .SRCINFO`\n    - [ ] update `pkgsums` by [`updpkgsums`](https://gitlab.archlinux.org/pacman/pacman-contrib)\n    - [ ] update version by a `nvcheck.toml` to tell this\n      program where to search new version:\n\n```toml\n[package_name]\nsource = \"github\"\ngithub = \"author_name/repo_name\"\nuse_max_tag = true\n```\n\nOther features:\n\n- [x] [pre-commit-hooks](https://pre-commit.com/)\n  - [x] linter\n  - [x] formatter\n\n## Screenshots\n\n### Diagnostic\n\n![diagnostic](https://github.com/termux/termux-language-server/assets/32936898/598c371f-151d-442f-b782-e504a3d08872)\n\n### Document Link\n\n![document link](https://github.com/Freed-Wu/pkgbuild-language-server/assets/32936898/d3777f3c-9b75-41f9-b6b3-1c4ec55c7283)\n\n### Hover\n\n![keyword](https://github.com/Freed-Wu/requirements-language-server/assets/32936898/91bfde00-28f7-4376-8b7a-10a0bd56ba51)\n\n![package](https://github.com/Freed-Wu/pkgbuild-language-server/assets/32936898/3d9fa906-35ea-4063-a9eb-06282d3e8596)\n\n### Completion\n\n![completion](https://github.com/Freed-Wu/pkgbuild-language-server/assets/32936898/c060690c-071b-41a0-bde5-dce338f4e779)\n\n![arch](https://github.com/termux/termux-language-server/assets/32936898/e10b40c6-515e-4d50-9526-d32ea26b9238)\n\n![license](https://github.com/termux/termux-language-server/assets/32936898/13109df3-30ba-4371-ad0a-aa7f46c8e80a)\n\n![depends](https://github.com/termux/termux-language-server/assets/32936898/a70b41ae-cf4b-44cc-bb10-a54cb5488f30)\n\n## How Does It Work\n\nSee [here](https://github.com/neomutt/lsp-tree-sitter#usage).\n\nRead\n[![readthedocs](https://shields.io/readthedocs/termux-language-server)](https://termux-language-server.readthedocs.io)\nto know more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftermux%2Ftermux-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftermux%2Ftermux-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftermux%2Ftermux-language-server/lists"}