README.md

June 26, 2026 ยท View on GitHub

perl-lsp logo

perl-lsp

CI Codecov parser branch coverage ripr+

GitHub release crates.io downloads docs.rs

VS Marketplace installs Open VSX downloads

MSRV License: MIT OR Apache-2.0


perl-lsp is a native Rust language server, parser stack, and debug adapter for Perl 5.

The problem

Perl has decades of real production code, but editor tooling still struggles with the parts that matter in daily work: incomplete code while typing, cross-file navigation, package and module resolution, diagnostics, refactoring, and debugger integration.

perl-lsp is built around a native parser, semantic analysis layer, workspace index, LSP server, and DAP implementation designed for real editor use.

Status at a glance

The README is a front door, not the metric source of truth. Current release posture, corpus counts, LSP coverage, workspace receipts, and native-tooling readiness live in the status docs so the numbers can be regenerated and reviewed in one place.

AreaSource
Release posturerelease status
Project statusstatus overview
Real Perl Editor Trustuser guide, trust dashboard
LSP and DAP coverageLSP status, DAP status
Parser corpus and coverageparser status
Workspace/indexingworkspace status
Native formatter and criticnative tooling status

What works

  • Measured editor workflows: completion, diagnostics, hover, go-to-definition, references, rename, safe-delete, semantic tokens, code actions, and workspace symbols use proof-backed paths where available and fallback or refuse unsafe cases where support is bounded.
  • Parser stack: native lexer, parser-core, parser facade, corpus ratchets, and tree-sitter integration.
  • UX testing: tracked editor UX scenarios cover first-five-minutes flows, issue-regression guards, cross-file navigation, diagnostics-after-edit, workspace churn, and rename.
  • Workspace intelligence: module resolution, symbol indexing, stale-index guards, multi-root workspaces, and workspace-aware rename.
  • Debug adapter: breakpoints, stepping, stack frames, variables, evaluate, and launch/attach flows.
  • Editor support: VS Code, Open VSX, Neovim, Vim, Emacs, Helix, Zed, Sublime, and any editor with LSP support.

Install

Current public install artifacts are public alpha. Verify the binary before wiring it into shared editor or CI configuration.

The VS Code extension downloads the matching perllsp binary automatically. Other editors use the perllsp --stdio server command after installing a release binary.

Native formatting and native critic diagnostics do not require perltidy or perlcritic. Install those tools only when a project explicitly opts into external compatibility behavior or needs legacy output comparison.

Do not install perl-lsp from crates.io; that is a different project.

Crate surface

The current architecture collapsed the old microcrate graph into a smaller published surface. Most implementation detail now lives in modules behind focused public crates.

NeedCrate
Binary language serverperllsp
LSP library facadeperl-lsp-rs
LSP implementation coreperl-lsp-rs-core
Parser facadeperl-parser
Parser engineperl-parser-core
Lexerperl-lexer
Semantic analysisperl-semantic-analyzer
Workspace indexperl-workspace
Diagnostics catalogperl-diagnostics
Debug adapterperl-dap
Tree-sitter integrationtree-sitter-perl-rs, tree-sitter-perl-c

Documentation

TaskLink
Installdocs/how-to/INSTALLATION.md
Editor setupdocs/how-to/EDITOR_SETUP.md
Getting starteddocs/tutorials/GETTING_STARTED.md
Configurationdocs/reference/CONFIG.md
Troubleshootingdocs/how-to/TROUBLESHOOTING.md
Perl setup troubleshootingdocs/how-to/PERL_SETUP_TROUBLESHOOTING.md
Editor trust and receiptsdocs/how-to/EDITOR_TRUST.md
Project status and metricsdocs/project/status/index.md
Measured editor trustdocs/explanation/MEASURED_PERL_EDITOR_TRUST.md
Roadmapdocs/project/ROADMAP.md
Compiler-backed LSP roadmapdocs/project/COMPILER_BACKED_LSP_ROADMAP.md
Provider readiness contractdocs/reference/PROVIDER_READINESS_CONTRACT.md
CI gate playbookdocs/reference/CI_GATE_PLAYBOOK.md
Release historyRELEASE_HISTORY.md
ContributingCONTRIBUTING.md
Agent workflowAGENTS.md

How this project is built

This repository uses a documented AI-assisted development conveyor: candidate generation, ensemble curation, layered verification, CI evidence, fix-forward, and release ratchets.

Start here:

TopicLink
Pipeline state machinedocs/articles/PIPELINE_STATE_MACHINE.md
Forensics / learning archivedocs/forensics/
Dispatch indexdocs/forensics/dispatch-index.toml
Agent workflowAGENTS.md
Contributor workflowCONTRIBUTING.md

The short version: bad PRs should fail cheaply, duplicate PRs should close quickly, good PRs should merge safely, master should stay healthy, and every cycle should improve both the codebase and the conveyor.

Contributing

See CONTRIBUTING.md. AI implementation agents should read AGENTS.md first.

Security

Release artifacts include SBOM generation and provenance attestations. See Supply Chain Security.

License

Dual licensed under MIT or Apache-2.0: LICENSE-MIT / LICENSE-APACHE.