xphp-lang/language-server

Language Server Protocol implementation for xphp. Powers diagnostics, hover, go-to-definition and completion in VS Code (and any LSP-aware editor) by reusing the xphp parser AST + Registry directly.

Maintainers

Package info

github.com/xphp-lang/language-server

pkg:composer/xphp-lang/language-server

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0 2026-06-01 21:31 UTC

This package is auto-updated.

Last update: 2026-06-02 05:27:39 UTC


README

Language Server Protocol [partial] implementation that powers editor intelligence for xphp files across any LSP-capable editor:

  • diagnostics
  • navigation
  • refactoring
  • completion
  • code lenses

The server can be shipped as a self-contained PHAR that can be used by other tools, like IDE plugins.

The server reuses the parent xphp package's AST, generic-instantiation Registry, and TypeHierarchy directly -- no second parser, no duplicated language semantics.

For the public-facing feature inventory plus what's planned next, see roadmap.

Install

composer require xphp-lang/language-server

Build

make build/phar # → var/xphp-lsp.phar

The PHAR is the distribution format for editor integrations bundle -- zero-config install for editors that can't reasonably depend on a Composer-managed working tree.

Overview

---
config:
  layout: tidy-tree
---
mindmap
  root((LSP))
    Navigate
      definition
      typeDefinition
      references
      implementation
      callHierarchy
      typeHierarchy
      documentSymbol
      workspaceSymbol
      documentHighlight
    Edit
      rename
      willRenameFiles
      codeAction
      codeLens
    Understand
      hover
      signatureHelp
      inlayHint
      foldingRange
      semanticTokens
    Validate
      parse
      bound
      duplicate-template
      undefined-bareword
      constructor-arg-mismatch
    Find
      completion
      completionItem/resolve
    Performance
      AST cache
      stub cache
      tolerant-parse
      UTF-16 columns
      short-name tie-break
      lint mode
Loading

See also