By sshadows
Enable LSP-powered code intelligence for AL (.al, .dal) development in Microsoft Dynamics 365 Business Central on Linux, delivering diagnostics, go-to-definition, find references, hover info, symbol listing, Code Lens, call hierarchy, and unused procedure detection in editors.
npx claudepluginhub sshadows/al-lsp-for-agents --plugin al-language-server-go-linuxAL Language Server wrappers for AI-powered Business Central development. Works with Claude Code, OpenCode, and VS Code (GitHub Copilot agent mode).
| Wrapper | Platform | Description |
|---|---|---|
al-language-server-go-windows | Windows | Recommended - Go wrapper with Code Lens & Call Hierarchy |
al-language-server-go-linux | Linux | Recommended - Go wrapper with Code Lens & Call Hierarchy |
al-language-server-go-darwin | macOS | Recommended - Go wrapper with Code Lens & Call Hierarchy |
al-language-server-python | Cross-platform | Deprecated - Basic LSP features only |
Migration Note: If you're using the Python wrapper, switch to the Go wrapper for your platform to get Code Lens (reference counts) and Call Hierarchy features.
The Go wrappers are compiled binaries with no runtime dependencies. The wrapper automatically finds the newest AL extension version in your VS Code extensions folder.
One-command setup:
Linux:
curl -fsSL https://raw.githubusercontent.com/SShadowS/al-lsp-for-agents/main/scripts/setup-opencode.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/SShadowS/al-lsp-for-agents/main/scripts/setup-opencode.ps1 | iex
The script downloads the latest binaries, checks for the AL VS Code extension, and configures opencode.json. Run it again to update. Use SCOPE=project to write config to the current directory instead of globally.
# PowerShell (current session)
$env:ENABLE_LSP_TOOL = "1"
claude
# PowerShell (permanent)
[Environment]::SetEnvironmentVariable("ENABLE_LSP_TOOL", "1", "User")
# Bash
export ENABLE_LSP_TOOL=1
claude
/plugin marketplace add SShadowS/al-lsp-for-agents
/pluginsMarketplacesal-lsp-for-agents marketplaceal-language-server-go-windowsal-language-server-go-linuxal-language-server-go-darwinClaude can use these LSP operations on AL files:
| Operation | Status | Description |
|---|---|---|
goToDefinition | Working | Go to symbol definition |
goToImplementation | Working | Go to implementation |
hover | Working | Get type/documentation info |
documentSymbol | Working | List symbols in file |
findReferences | Working | Find all references |
prepareCallHierarchy | Working | Get call hierarchy item at position |
incomingCalls | Working | Find callers of a procedure |
outgoingCalls | Working | Find calls made by a procedure |
workspaceSymbol | Bug | See Known Issues |
Claude Code's LSP tool has a bug where it doesn't pass the required query parameter for workspaceSymbol. This causes the operation to always return 0 symbols.
Workarounds:
documentSymbol to list symbols in a specific fileGrep to search for symbol names across the workspaceSee KnownIssues.md for full details and technical analysis.
TypeScript/JavaScript language server for enhanced code intelligence
C/C++ language server (clangd) for code intelligence
C# language server for code intelligence
Python language server (Pyright) for type checking and code intelligence
Java language server (Eclipse JDT.LS) for code intelligence
GDScript language server for Godot Engine