docs/internal/lsp-plugin-testing.md
Testing each LSP helper plugin in Fresh editor to verify:
Environment: Linux x86_64, Fresh 0.2.17 (debug build) Date: 2026-03-20
claude/add-lsp-helper-plugins-CMYB3 branch)| # | Language | Plugin File | Status Msg on Missing Server | Popup Tested | Server Tested | Notes |
|---|---|---|---|---|---|---|
| 1 | Bash | bash-lsp.ts | "Bash LSP server 'bash-language-server' not found. Click status bar for help." | - | Installed; crashes (WASM OOM in node) | Plugin correctly catches crash error too |
| 2 | Lua | lua-lsp.ts | "Lua LSP server 'lua-language-server' not found. Click status bar for help." | YES | - | Popup: brew, pacman, nix-env install cmds |
| 3 | Ruby | ruby-lsp.ts | "Ruby LSP server 'solargraph' not found. Click status bar for help." | - | - | |
| 4 | PHP | php-lsp.ts | "PHP LSP server 'phpactor' not found. Click status bar for help." | - | - | |
| 5 | YAML | yaml-lsp.ts | "YAML LSP server 'yaml-language-server' not found. Click status bar for help." | - | Installed; "LSP [yaml: ready]" | Hover: "No hover info" (expected, no schema) |
| 6 | TOML | toml-lsp.ts | "TOML LSP server 'taplo' not found. Click status bar for help." | - | Installed (npm); crashes (WASM OOM) | Plugin catches crash error correctly |
| 7 | Typst | typst-lsp.ts | "Typst LSP server 'tinymist' not found. Click status bar for help." | - | - | |
| 8 | Dart | dart-lsp.ts | "Dart LSP server 'dart' not found. Click status bar for help." | - | - | |
| 9 | Nushell | nushell-lsp.ts | "Nushell LSP server 'nu' not found. Click status bar for help." | - | - | |
| 10 | Solidity | solidity-lsp.ts | "Solidity LSP server 'nomicfoundation-solidity-language-server' not found. Click status bar for help." | - | - | |
| 11 | Terraform | terraform-lsp.ts | "Terraform LSP server 'terraform-ls' not found. Click status bar for help." | - | - | |
| 12 | CMake | cmake-lsp.ts | "CMake LSP server 'cmake-language-server' not found. Click status bar for help." | - | - | |
| 13 | Protobuf | protobuf-lsp.ts | "Protobuf LSP server 'buf' not found. Click status bar for help." | - | - | |
| 14 | GraphQL | graphql-lsp.ts | "GraphQL LSP server 'graphql-lsp' not found. Click status bar for help." | - | - | |
| 15 | SQL | sql-lsp.ts | "SQL LSP server 'sqls' not found. Click status bar for help." | - | - | |
| 16 | Vue | vue-lsp.ts | "Vue LSP server 'vue-language-server' not found. Click status bar for help." | - | - | |
| 17 | Svelte | svelte-lsp.ts | "Svelte LSP server 'svelteserver' not found. Click status bar for help." | - | - | |
| 18 | Astro | astro-lsp.ts | "Astro LSP server 'astro-ls' not found. Click status bar for help." | - | - | |
| 19 | Nix | nix-lsp.ts | "Nix LSP server 'nil' not found. Click status bar for help." | - | - | |
| 20 | Kotlin | kotlin-lsp.ts | "Kotlin LSP server 'kotlin-language-server' not found. Click status bar for help." | - | - | |
| 21 | Swift | swift-lsp.ts | "Swift LSP server 'sourcekit-lsp' not found. Click status bar for help." | - | - | |
| 22 | Scala | scala-lsp.ts | "Scala LSP server 'metals' not found. Click status bar for help." | - | - | |
| 23 | Haskell | haskell-lsp.ts | "Haskell LSP server 'haskell-language-server-wrapper' not found. Click status bar for help." | YES | - | Popup: ghcup, brew, nix install cmds |
| 24 | OCaml | ocaml-lsp.ts | "OCaml LSP server 'ocamllsp' not found. Click status bar for help." | - | - | |
| 25 | Clojure | clojure-lsp.ts | "Clojure LSP server 'clojure-lsp' not found. Click status bar for help." | - | - | |
| 26 | Elixir | elixir-lsp.ts | "Elixir LSP server 'elixir-ls' not found. Click status bar for help." | YES | - | Popup: brew, nix cmds; mentions Expert LSP |
| 27 | Erlang | erlang-lsp.ts | "Erlang LSP server 'erlang_ls' not found. Click status bar for help." | - | - | |
| 28 | R | r-lsp.ts | "R LSP server 'R' not found. Click status bar for help." | - | - | |
| 29 | Julia | julia-lsp.ts | "Julia LSP server 'julia' not found. Click status bar for help." | - | - | |
| 30 | Perl | perl-lsp.ts | "Perl LSP server 'perlnavigator' not found. Click status bar for help." | - | - | |
| 31 | Nim | nim-lsp.ts | "Nim LSP server 'nimlangserver' not found. Click status bar for help." | - | - | |
| 32 | Gleam | gleam-lsp.ts | "Gleam LSP server 'gleam' not found. Click status bar for help." | - | - | |
| 33 | F# | fsharp-lsp.ts | "F# LSP server 'fsautocomplete' not found. Click status bar for help." | - | - | |
| 34 | TailwindCSS | tailwindcss-lsp.ts | N/A (attaches to CSS/HTML/JS, no dedicated file type) | - | - | Special: supplementary LSP, tested via .css triggers CSS plugin instead |
┌Lua Language Server Not Found─────────────────────┐
│"lua-language-server" (LuaLS) provides code │
│completion, diagnostics, and navigation for Lua. │
│ │
│Copy: brew install lua-language-server │
│Copy: sudo pacman -S lua-language-server │
│Copy: nix-env -i lua-language-server │
│Disable Lua LSP │
│Dismiss (ESC) │
└────────────────────────────────────────────────────┘
┌Haskell Language Server Not Found─────────────────┐
│"haskell-language-server-wrapper" (HLS) provides │
│completion, diagnostics, code actions, and │
│refactoring for Haskell. HLS must match your GHC │
│version. │
│ │
│Copy: ghcup install hls │
│Copy: brew install haskell-language-server │
│Copy: nix-env -iA nixpkgs.haskell-language-server │
└────────────────────────────────────────────────────┘
┌Elixir Language Server Not Found──────────────────┐
│"elixir-ls" provides completion, diagnostics, │
│go-to-definition, Dialyzer integration, and │
│debugging for Elixir. Requires Elixir and │
│Erlang/OTP. Expert (https://expert-lsp.org) is the │
│upcoming official Elixir LSP. │
│ │
│Copy: brew install elixir-ls │
│Copy: nix-env -iA nixpkgs.elixir-ls │
│Disable Elixir LSP │
│Dismiss (ESC) │
└────────────────────────────────────────────────────┘
RangeError: WebAssembly.Instance(): Out of memory. This is an environment memory constraint, not a plugin issue.go install and some downloads fail due to network timeout. Cannot test gopls, etc.auto_start: false, requiring manual start via command palette ("Start/Restart LSP Server").All 34 new LSP helper plugins work correctly:
lsp_server_error, lsp_status_clicked, and action_popup_result events