Skip to content

feat: add Claude Code marketplace and dexter-lsp plugin#59

Open
pquadri wants to merge 4 commits intoremoteoss:mainfrom
pquadri:docs/claude-code-lsp-setup
Open

feat: add Claude Code marketplace and dexter-lsp plugin#59
pquadri wants to merge 4 commits intoremoteoss:mainfrom
pquadri:docs/claude-code-lsp-setup

Conversation

@pquadri
Copy link
Copy Markdown

@pquadri pquadri commented May 5, 2026

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:

claude plugin marketplace add remoteoss/dexter
claude plugin install dexter-lsp@dexter

Changes

  • .claude-plugin/marketplace.json — makes this repo a Claude Code marketplace named dexter
  • plugins/dexter-lsp/.claude-plugin/plugin.json — plugin manifest that wires up dexter lsp for .ex, .exs, and .heex files, with followDelegates and debug exposed as user-configurable options
  • README.md — adds a Claude Code section to the editor setup docs

How it works

Claude Code's LSP tool supports a plugin system. The lspServers entry in plugin.json tells Claude Code to spawn dexter lsp when opening Elixir files, giving it go-to-definition, hover docs, find references, workspace symbols, and more.

Test plan

  • claude plugin marketplace add remoteoss/dexter succeeds
  • claude plugin install dexter-lsp@dexter succeeds
  • Open an Elixir project — LSP tool resolves hover and go-to-definition on .ex files
  • userConfig prompts appear for followDelegates and debug on install

Note

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.json and a dexter-lsp plugin manifest that launches dexter lsp for .ex, .exs, and .heex files.

Updates README.md with Claude Code setup instructions (enabling the LSP tool and installing via claude plugin marketplace add / claude plugin install) and exposes followDelegates/debug as 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.

pquadri added 2 commits May 5, 2026 16:51
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.
@pquadri pquadri changed the title docs: add Claude Code LSP setup guide feat: add Claude Code marketplace and dexter-lsp plugin May 5, 2026
Comment thread plugins/dexter-lsp/.claude-plugin/plugin.json Outdated
@JesseHerrick JesseHerrick self-requested a review May 6, 2026 04:04
@JesseHerrick
Copy link
Copy Markdown
Member

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",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say that this would be the version of the plugin itself, no? So v0.1

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Reviewed by Cursor Bugbot for commit 305f540. Configure here.

"initializationOptions": {
"followDelegates": "${user_config.follow_delegates}",
"debug": "${user_config.debug}"
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 305f540. Configure here.

"description": "Enable verbose LSP logging to stderr",
"default": false
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 305f540. Configure here.

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.

2 participants