feat: add Claude Code marketplace and dexter-lsp plugin#59
feat: add Claude Code marketplace and dexter-lsp plugin#59pquadri wants to merge 4 commits intoremoteoss:mainfrom
Conversation
Explains how to wire up Dexter as the Elixir LSP for Claude Code's LSP tool (go-to-definition, hover docs, find references) using a local plugin manifest.
Turns the dexter repo into a Claude Code marketplace so users can install Dexter as their Elixir LSP with two commands: claude plugin marketplace add remoteoss/dexter claude plugin install dexter-lsp@dexter The plugin wires up `dexter lsp` for .ex/.exs/.heex files and exposes followDelegates and debug as user-configurable options.
|
Thanks for the PR @pquadri! I think this is a great addition. Going to sleep on whether to keep this in the same repo or in a different one. If you have any docs on the matter, I'd also be glad to read them. Should be able to merge this tomorrow. |
| "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", | ||
| "name": "dexter-lsp", | ||
| "description": "Dexter language server for Elixir (.ex, .exs, .heex)", | ||
| "version": "0.6.0", |
There was a problem hiding this comment.
I'd say that this would be the version of the plugin itself, no? So v0.1
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Reviewed by Cursor Bugbot for commit 305f540. Configure here.
| "initializationOptions": { | ||
| "followDelegates": "${user_config.follow_delegates}", | ||
| "debug": "${user_config.debug}" | ||
| } |
There was a problem hiding this comment.
Boolean config values passed as strings, silently ignored
High Severity
The initializationOptions values "${user_config.follow_delegates}" and "${user_config.debug}" are wrapped in JSON string quotes, so Claude Code's template interpolation produces string values like "true" or "false" rather than JSON booleans. The Dexter LSP server in server.go uses Go type assertions (opts["followDelegates"].(bool)) that silently fail for string values, causing both settings to always fall back to their hardcoded defaults (followDelegates=true, debug=false). User configuration is effectively non-functional.
Reviewed by Cursor Bugbot for commit 305f540. Configure here.
| "description": "Enable verbose LSP logging to stderr", | ||
| "default": false | ||
| } | ||
| } |
There was a problem hiding this comment.
Plugin uses unsupported default field in userConfig
Medium Severity
The userConfig entries use a default field ("default": true and "default": false), but Claude Code's plugin system does not currently support the default property in userConfig — it only supports type, title, description, required, and sensitive. The defaults won't be seeded into settings.json on install, so the ${user_config.*} references in initializationOptions will resolve to empty/unresolved values rather than the intended defaults.
Reviewed by Cursor Bugbot for commit 305f540. Configure here.


Summary
Turns the dexter repo into a Claude Code marketplace, so users can install Dexter as their Elixir LSP in Claude Code with just two commands:
Changes
.claude-plugin/marketplace.json— makes this repo a Claude Code marketplace nameddexterplugins/dexter-lsp/.claude-plugin/plugin.json— plugin manifest that wires updexter lspfor.ex,.exs, and.heexfiles, withfollowDelegatesanddebugexposed as user-configurable optionsREADME.md— adds a Claude Code section to the editor setup docsHow it works
Claude Code's LSP tool supports a plugin system. The
lspServersentry inplugin.jsontells Claude Code to spawndexter lspwhen opening Elixir files, giving it go-to-definition, hover docs, find references, workspace symbols, and more.Test plan
claude plugin marketplace add remoteoss/dextersucceedsclaude plugin install dexter-lsp@dextersucceeds.exfilesuserConfigprompts appear forfollowDelegatesanddebugon installNote
Low Risk
Low risk: adds Claude Code marketplace/plugin manifests and documentation only, with no changes to core LSP/runtime behavior.
Overview
Makes this repo a Claude Code plugin marketplace by adding
.claude-plugin/marketplace.jsonand adexter-lspplugin manifest that launchesdexter lspfor.ex,.exs, and.heexfiles.Updates
README.mdwith Claude Code setup instructions (enabling the LSP tool and installing viaclaude plugin marketplace add/claude plugin install) and exposesfollowDelegates/debugas Claude user-configurable options via the plugin manifest.Reviewed by Cursor Bugbot for commit 305f540. Bugbot is set up for automated code reviews on this repo. Configure here.