Skip to content

feat(bash-lsp): add Bash Language Server plugin - #394

Merged
baleen37 merged 1 commit into
mainfrom
feat/bash-lsp
Feb 4, 2026
Merged

feat(bash-lsp): add Bash Language Server plugin#394
baleen37 merged 1 commit into
mainfrom
feat/bash-lsp

Conversation

@baleen37

@baleen37 baleen37 commented Feb 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add bash-lsp plugin for Bash script LSP support
  • Provides autocomplete, diagnostics, and navigation for .sh and .bash files
  • Includes lightweight auto-install hook (background install, minimal overhead)

Test plan

  • Plugin structure validated
  • Auto-install script tested (bash-language-server 5.6.0 installed successfully)
  • MCP configuration verified
  • marketplace.json updated

🤖 Generated with Claude Code

Summary by CodeRabbit

New Features

  • Added Bash Language Server integration for Bash scripts (.sh and .bash files)
    • Includes autocomplete suggestions, diagnostics, definition navigation, reference finding, and hover information
    • Automatically installs required dependencies on first use

Add bash-lsp plugin for Bash script LSP support with autocomplete, diagnostics, and navigation. Includes auto-install hook for bash-language-server.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@baleen37
baleen37 enabled auto-merge (squash) February 4, 2026 23:49
@coderabbitai

coderabbitai Bot commented Feb 4, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR adds a new Bash Language Server plugin to the Claude plugins ecosystem. It includes marketplace registration, plugin configuration, MCP server setup, documentation, and auto-installation hooks for bash-language-server.

Changes

Cohort / File(s) Summary
Marketplace & Plugin Configuration
.claude-plugin/marketplace.json, plugins/bash-lsp/.claude-plugin/plugin.json, plugins/bash-lsp/.mcp.json
Added plugin registration with metadata (name, version, description, tags) and MCP server configuration mapping .sh and .bash file extensions to the bash language identifier.
Documentation
plugins/bash-lsp/README.md
Added user-facing documentation describing the Bash LSP plugin features (autocomplete, diagnostics, go-to-definition, find references, hover) and installation instructions.
Auto-Installation Hooks
plugins/bash-lsp/hooks/hooks.json, plugins/bash-lsp/hooks/scripts/check-install.sh
Added session startup hook that runs a shell script to check for and auto-install bash-language-server globally if not already present.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Possibly related PRs

  • PR #225: Adds another Language Server Protocol plugin with marketplace integration, similar structure and objectives to this bash-lsp plugin addition.
  • PR #30: Introduces dynamic plugin discovery and marketplace-based release logic that would govern how this new plugin entry is discovered and versioned.

Poem

🐰 Hippity-hop through bash scripts bright,
LSP hops into the plugin night,
Auto-install with a script so neat,
Shell completion, oh what a treat!
Diagnostics dancing, errors in flight,
Bash coding now feels just right! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/bash-lsp

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@baleen37
baleen37 merged commit 7770f3d into main Feb 4, 2026
4 of 5 checks passed
@baleen37
baleen37 deleted the feat/bash-lsp branch February 4, 2026 23:50
baleen37 pushed a commit that referenced this pull request Feb 5, 2026
# [5.0.0](v4.3.0...v5.0.0) (2026-02-05)

### Bug Fixes

* **ci:** disable strict status checks to allow semantic-release commits ([7b296a4](7b296a4))
* **ci:** merge Release workflow into CI workflow with proper dependency ([906673e](906673e))
* **ci:** trigger CI on release-please PRs using workflow_run ([33ff7d3](33ff7d3))
* **ci:** update branch protection to match GitHub Actions status check format ([13efcf5](13efcf5))
* enable glob pattern for plugin.json version updates ([86fd628](86fd628))
* **handoff:** output notification to stderr to exclude from LLM context ([463bb08](463bb08))
* **marketplace:** remove databricks plugin reference ([f0bc6b8](f0bc6b8))
* **ralph-loop:** fix hooks matcher and stdin handling ([326a570](326a570))
* set release-please manifest to start from 4.3.0 ([#377](#377)) ([23a6cba](23a6cba))

### Features

* **bash-lsp:** add Bash Language Server plugin ([#394](#394)) ([7770f3d](7770f3d))
* **ci:** replace release-please with semantic-release ([35d346f](35d346f))
* **conversation-memory:** add automatic npm install when node_modules missing ([db55514](db55514))
* **conversation-memory:** add marked dependency for markdown rendering ([1887174](1887174))
* **conversation-memory:** improve MCP installation error handling ([#373](#373)) ([16eb7b7](16eb7b7))
* **conversation-memory:** reduce token usage in summarization ([d921bc7](d921bc7))
* **conversation-memory:** reduce token usage in summarization ([b3a245b](b3a245b))
* **handoff:** add session handoff plugin for context transfer ([#374](#374)) ([35cfb0c](35cfb0c))
* **me:** add tdd and spawn commands ([#371](#371)) ([9af9bbe](9af9bbe))
* migrate from semantic-release to Release Please ([#375](#375)) ([d20c736](d20c736))
* **release-please:** add auto-merge for release PRs ([cef4678](cef4678))
* **test-helpers:** extract shared BATS helpers to @baleen/bats-helpers package ([19f2a62](19f2a62))
* **tests:** run plugin tests in parallel using background processes ([04be773](04be773))

### Performance Improvements

* **tests:** add caching to improve test execution speed ([9bbee5b](9bbee5b))

### BREAKING CHANGES

* Release workflow now requires merging Release Please PRs
instead of automatic releases on push to main.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
baleen37 added a commit that referenced this pull request Feb 5, 2026
* chore: prepare for 5.0.0 release

* chore(release): 5.0.0

# [5.0.0](v4.3.0...v5.0.0) (2026-02-05)

### Bug Fixes

* **ci:** disable strict status checks to allow semantic-release commits ([7b296a4](7b296a4))
* **ci:** merge Release workflow into CI workflow with proper dependency ([906673e](906673e))
* **ci:** trigger CI on release-please PRs using workflow_run ([33ff7d3](33ff7d3))
* **ci:** update branch protection to match GitHub Actions status check format ([13efcf5](13efcf5))
* enable glob pattern for plugin.json version updates ([86fd628](86fd628))
* **handoff:** output notification to stderr to exclude from LLM context ([463bb08](463bb08))
* **marketplace:** remove databricks plugin reference ([f0bc6b8](f0bc6b8))
* **ralph-loop:** fix hooks matcher and stdin handling ([326a570](326a570))
* set release-please manifest to start from 4.3.0 ([#377](#377)) ([23a6cba](23a6cba))

### Features

* **bash-lsp:** add Bash Language Server plugin ([#394](#394)) ([7770f3d](7770f3d))
* **ci:** replace release-please with semantic-release ([35d346f](35d346f))
* **conversation-memory:** add automatic npm install when node_modules missing ([db55514](db55514))
* **conversation-memory:** add marked dependency for markdown rendering ([1887174](1887174))
* **conversation-memory:** improve MCP installation error handling ([#373](#373)) ([16eb7b7](16eb7b7))
* **conversation-memory:** reduce token usage in summarization ([d921bc7](d921bc7))
* **conversation-memory:** reduce token usage in summarization ([b3a245b](b3a245b))
* **handoff:** add session handoff plugin for context transfer ([#374](#374)) ([35cfb0c](35cfb0c))
* **me:** add tdd and spawn commands ([#371](#371)) ([9af9bbe](9af9bbe))
* migrate from semantic-release to Release Please ([#375](#375)) ([d20c736](d20c736))
* **release-please:** add auto-merge for release PRs ([cef4678](cef4678))
* **test-helpers:** extract shared BATS helpers to @baleen/bats-helpers package ([19f2a62](19f2a62))
* **tests:** run plugin tests in parallel using background processes ([04be773](04be773))

### Performance Improvements

* **tests:** add caching to improve test execution speed ([9bbee5b](9bbee5b))

### BREAKING CHANGES

* Release workflow now requires merging Release Please PRs
instead of automatic releases on push to main.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor(bash-lsp): migrate from MCP to LSP configuration

- Remove .mcp.json file
- Add lspServers field to plugin.json with bash-language-server config
- Add .bats extension support for BATS test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(bats): add lspServers to allowed plugin.json fields

- Add lspServers to json_field_is_allowed function
- Update error message to include lspServers in allowed fields list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
baleen-release-app Bot pushed a commit that referenced this pull request Feb 5, 2026
# [5.0.0](v4.3.0...v5.0.0) (2026-02-05)

### Bug Fixes

* **ci:** disable strict status checks to allow semantic-release commits ([7b296a4](7b296a4))
* **ci:** merge Release workflow into CI workflow with proper dependency ([906673e](906673e))
* **ci:** trigger CI on release-please PRs using workflow_run ([33ff7d3](33ff7d3))
* **ci:** update bats-action to latest commit ([106b1f3](106b1f3))
* **ci:** update branch protection to match GitHub Actions status check format ([13efcf5](13efcf5))
* **ci:** use full commit SHA for bats-action ([9a70f52](9a70f52))
* **commands:** correct sdd command skill reference ([#403](#403)) ([a4db99c](a4db99c))
* enable glob pattern for plugin.json version updates ([86fd628](86fd628))
* **handoff:** output notification to stderr to exclude from LLM context ([463bb08](463bb08))
* **marketplace:** remove databricks plugin reference ([f0bc6b8](f0bc6b8))
* **ralph-loop:** fix hooks matcher and stdin handling ([326a570](326a570))
* **release:** add owner parameter to GitHub App token generation ([#401](#401)) ([b910a20](b910a20))
* **release:** remove GitHub App token generation ([ced7b17](ced7b17))
* **release:** restore GitHub App token generation ([45dd490](45dd490))
* **release:** use GitHub App token with Administration permission ([4077ecd](4077ecd))
* **release:** use GitHub App token with Administration permission ([#411](#411)) ([e6b1e9c](e6b1e9c))
* **release:** use GITHUB_TOKEN directly with github-actions[bot] bypass ([c7b517c](c7b517c))
* **release:** use GITHUB_TOKEN instead of custom GitHub App ([76a2a00](76a2a00))
* **release:** use secrets.GITHUB_TOKEN directly ([a2aaf50](a2aaf50))
* set release-please manifest to start from 4.3.0 ([#377](#377)) ([23a6cba](23a6cba))

### Features

* **bash-lsp:** add Bash Language Server plugin ([#394](#394)) ([7770f3d](7770f3d))
* **ci:** replace release-please with semantic-release ([35d346f](35d346f))
* **conversation-memory:** add automatic npm install when node_modules missing ([db55514](db55514))
* **conversation-memory:** add file-based logging system ([81f65bd](81f65bd))
* **conversation-memory:** add marked dependency for markdown rendering ([1887174](1887174))
* **conversation-memory:** improve MCP installation error handling ([#373](#373)) ([16eb7b7](16eb7b7))
* **conversation-memory:** reduce token usage in summarization ([d921bc7](d921bc7))
* **conversation-memory:** reduce token usage in summarization ([b3a245b](b3a245b))
* **databricks-devtools:** add Databricks CLI wrapper plugin ([#408](#408)) ([7baf422](7baf422))
* **handoff:** add session handoff plugin for context transfer ([#374](#374)) ([35cfb0c](35cfb0c))
* **lsp-support:** add Kotlin, Lua, Nix LSP servers, merge bash-lsp ([8f1ee4f](8f1ee4f))
* **me:** add commit skill ([8d0cf1c](8d0cf1c))
* **me:** add tdd and spawn commands ([#371](#371)) ([9af9bbe](9af9bbe))
* migrate from semantic-release to Release Please ([#375](#375)) ([d20c736](d20c736))
* **release-please:** add auto-merge for release PRs ([cef4678](cef4678))
* **test-helpers:** extract shared BATS helpers to @baleen/bats-helpers package ([19f2a62](19f2a62))
* **tests:** run plugin tests in parallel using background processes ([04be773](04be773))

### Performance Improvements

* **tests:** add caching to improve test execution speed ([9bbee5b](9bbee5b))

### BREAKING CHANGES

* Release workflow now requires merging Release Please PRs
instead of automatic releases on push to main.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
baleen37 added a commit to baleen37/memmem that referenced this pull request Feb 15, 2026
* chore: prepare for 5.0.0 release

* chore(release): 5.0.0

# [5.0.0](baleen37/bstack@v4.3.0...v5.0.0) (2026-02-05)

### Bug Fixes

* **ci:** disable strict status checks to allow semantic-release commits ([7b296a4](baleen37/bstack@7b296a4))
* **ci:** merge Release workflow into CI workflow with proper dependency ([906673e](baleen37/bstack@906673e))
* **ci:** trigger CI on release-please PRs using workflow_run ([33ff7d3](baleen37/bstack@33ff7d3))
* **ci:** update branch protection to match GitHub Actions status check format ([13efcf5](baleen37/bstack@13efcf5))
* enable glob pattern for plugin.json version updates ([86fd628](baleen37/bstack@86fd628))
* **handoff:** output notification to stderr to exclude from LLM context ([463bb08](baleen37/bstack@463bb08))
* **marketplace:** remove databricks plugin reference ([f0bc6b8](baleen37/bstack@f0bc6b8))
* **ralph-loop:** fix hooks matcher and stdin handling ([326a570](baleen37/bstack@326a570))
* set release-please manifest to start from 4.3.0 ([#377](baleen37/bstack#377)) ([23a6cba](baleen37/bstack@23a6cba))

### Features

* **bash-lsp:** add Bash Language Server plugin ([#394](baleen37/bstack#394)) ([7770f3d](baleen37/bstack@7770f3d))
* **ci:** replace release-please with semantic-release ([35d346f](baleen37/bstack@35d346f))
* **conversation-memory:** add automatic npm install when node_modules missing ([db55514](baleen37/bstack@db55514))
* **conversation-memory:** add marked dependency for markdown rendering ([1887174](baleen37/bstack@1887174))
* **conversation-memory:** improve MCP installation error handling ([#373](baleen37/bstack#373)) ([16eb7b7](baleen37/bstack@16eb7b7))
* **conversation-memory:** reduce token usage in summarization ([d921bc7](baleen37/bstack@d921bc7))
* **conversation-memory:** reduce token usage in summarization ([b3a245b](baleen37/bstack@b3a245b))
* **handoff:** add session handoff plugin for context transfer ([#374](baleen37/bstack#374)) ([35cfb0c](baleen37/bstack@35cfb0c))
* **me:** add tdd and spawn commands ([#371](baleen37/bstack#371)) ([9af9bbe](baleen37/bstack@9af9bbe))
* migrate from semantic-release to Release Please ([#375](baleen37/bstack#375)) ([d20c736](baleen37/bstack@d20c736))
* **release-please:** add auto-merge for release PRs ([cef4678](baleen37/bstack@cef4678))
* **test-helpers:** extract shared BATS helpers to @baleen/bats-helpers package ([19f2a62](baleen37/bstack@19f2a62))
* **tests:** run plugin tests in parallel using background processes ([04be773](baleen37/bstack@04be773))

### Performance Improvements

* **tests:** add caching to improve test execution speed ([9bbee5b](baleen37/bstack@9bbee5b))

### BREAKING CHANGES

* Release workflow now requires merging Release Please PRs
instead of automatic releases on push to main.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor(bash-lsp): migrate from MCP to LSP configuration

- Remove .mcp.json file
- Add lspServers field to plugin.json with bash-language-server config
- Add .bats extension support for BATS test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(bats): add lspServers to allowed plugin.json fields

- Add lspServers to json_field_is_allowed function
- Update error message to include lspServers in allowed fields list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant