Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Pike Language ServerNew to Visual Studio Code? Get it now.
Pike Language Server

Pike Language Server

TheSmuks

|
12 installs
| (0) | Free
IDE-grade Pike tooling — real compiler diagnostics, cross-file navigation, type-aware completion, and Roxen WebServer support out of the box.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info
Pike Language Server logo

Pike Language Server

Rich, IDE-grade language support for Pike in Visual Studio Code — diagnostics, completion, navigation, refactoring, and formatting, powered by the Pike compiler itself.

Marketplace CI License: MIT

Install · Features · Configuration · Troubleshooting · Contributing


Why

Pike is a powerful language with a sparse tooling story. This extension brings a modern editing experience to .pike, .pmod, and .mmod files by using pike itself as the semantic oracle — diagnostics, types, and symbol resolution come from the real compiler, not heuristics — with tree-sitter-pike providing fast, incremental syntax parsing.

It also understands Roxen WebServer source out of the box, with a bundled Roxen 6.1 index so its constants and APIs resolve even on a machine with no Roxen installed.

The extension bundles and manages the language server automatically. Install it, open a Pike file, and it just works.

Installation

Prerequisites

  • Pike 8.0+ — install from pike.lysator.liu.se and make sure pike is on your PATH (or set pike.languageServer.path).
  • VS Code 1.85+

Install

Get Pike Language Server from the Marketplace, or from the command line:

code --install-extension thesmuks.pike-language-server

Open any .pike, .pmod, or .mmod file and the server starts automatically. The status bar item (bottom-right) shows its state — click it to open the output channel.

Other editors

The server speaks plain LSP over stdio and works outside VS Code:

  • Helix — step-by-step installation guide
  • Neovim and any other LSP client — see docs/other-editors.md

Features

A comprehensive LSP feature set, all backed by real compiler information:

Diagnostics

  • Live compilation errors and warnings straight from pike, debounced while you type
  • Three modes: realtime, saveOnly, or off, with version-gated supersession and cross-file propagation

Navigation

  • Go-to-definition and find-references, workspace-wide and across inherit/import chains
  • Go-to-implementation for inherited symbols
  • Document & workspace symbols, document highlights, folding ranges
  • Call hierarchy and type hierarchy

Completion

  • Scope-aware local completions with priority ranking
  • Member completion through multi-level inheritance, for both -> and . access with type inference
  • Chained-call resolution (getContainer()->getItem()->…)
  • 5,500+ stdlib symbols (Stdio, Gtk2, Sql, Protocols, …) and 283 predef builtins, with auto-import suggestions
  • Snippet completions with parameter placeholders and commit characters

Refactoring & editing

  • Scope-aware, cross-file, type-aware rename
  • Code actions — remove unused variable, add missing import, generate getters/setters, generate AutoDoc
  • Signature help with active-parameter tracking
  • Formatting — full-document and on-type, with optional operator spacing
  • Code lenses (reference counts), document links (#include paths), inlay hints (inferred types)

Information

  • Hover — types, AutoDoc, stdlib signatures, cross-file resolution
  • Semantic tokens for precise highlighting
  • Smart, scope-aware selection ranges

Roxen WebServer

  • Roxen source is Pike, but #include <module.h> and the other Roxen headers never resolve on their own. A local installation is detected automatically — explicit setting, then pike.json, then a workspace ancestor, then /usr/local/roxen* — and its module, include, and program paths are folded into Pike's.
  • A generated index of Roxen 6.1 (212 constants, 1694 Roxen/RXML/module-prototype symbols) ships with the server, so hover and completion work with no Roxen installed at all. A detected installation takes precedence and additionally gives go-to-definition into real sources.
  • Roxen mode is decided per file — from a Roxen header include, inherit "module", or constant module_type = MODULE_*, with directory inheritance for helper files. A plain Pike file in a mixed workspace is never offered a Roxen symbol. Override with pike.roxen.mode.

Configuration

Configure under Settings → Extensions → Pike Language Server, or in settings.json. The most common settings:

Setting Default Description
pike.languageServer.path "pike" Path to the Pike binary. Must be Pike 8.0 or newer.
pike.languageServer.pikeHome "" Pike installation root (e.g. /usr/local/pike/8.0.1116). Overrides auto-detection when set.
pike.languageServer.modulePaths [] Additional module search paths (-M).
pike.languageServer.includePaths [] Additional include search paths (-I).
pike.languageServer.diagnosticMode "realtime" When to report diagnostics: realtime, saveOnly, or off.
pike.languageServer.diagnosticDebounceMs 500 Debounce for realtime diagnostics, in ms (100–5000).
pike.languageServer.maxNumberOfProblems 100 Max diagnostics reported per file (1–1000).
pike.languageServer.indexing.mode "openFiles" Startup indexing: openFiles (fastest start), full (immediate global features), or auto.
pike.languageServer.format.operatorSpacing false Add spaces around operators when formatting.
pike.languageServer.memory.budgetMb 512 Heap budget (MB) before the server sheds non-essential index entries.
pike.languageServer.trace.server "off" LSP protocol tracing (off/messages/verbose) for debugging.
pike.roxen.mode "auto" Roxen support: auto (detect per file), on, or off.
pike.roxen.path "" Roxen installation root. Overrides auto-detection when set.

There are 28 settings in total — including worker lifecycle, background indexing, and hibernation tuning — all discoverable in the Settings UI.

Troubleshooting

Server won't start

  1. Click the status bar item to open Output → Pike Language Server.
  2. Confirm pike --version works in your terminal and reports 8.0 or newer.
  3. Check that pike.languageServer.path points to a working Pike binary.

Diagnostics not appearing — ensure pike.languageServer.diagnosticMode is realtime or saveOnly.

Status bar shows a warning icon — click it to inspect the error. Common causes: Pike not found, version too old, or file permissions.

For deeper diagnosis, set pike.languageServer.trace.server to verbose and check the output channel.

Architecture

A Tier-3 LSP: pike is the semantic oracle and tree-sitter-pike is the syntactic parser. The server is TypeScript (vscode-languageserver-node) split into 137 focused modules, following a strict style budget (500-line files, 50-line functions, explicit error handling, bounded caches) enforced in CI.

Correctness is anchored to the compiler: the test suite derives every expected result from pike itself — no hand-written expectations — across 487 Pike (PUnit) tests, 2,480+ TypeScript tests, a 91-file language corpus, and VS Code integration tests.

Behaviour is also audited by running the server for real rather than reasoning about it. A harness fires every declared capability at every declaration and sampled reference across a workspace, gating each finding against the Pike compiler so a defect in the source is never reported as a defect in the server. The most recent sweep put 200,936 requests through all 442 Pike files of Roxen 6.1 with zero crashes and zero timeouts, and the semantic corpus answers every request it owes — 7,874 requests, no empty or incorrect results. Findings and remaining gaps are written up in docs/audits/.

See docs/architecture.md for the full design and docs/decisions/ for the decision records.

Contributing

Contributions are welcome. Quick start:

bun install          # install dependencies
bun run build        # build server + client
bun run test:all     # TypeScript + Pike test suites
bun run typecheck    # type-check
bun run fmt:check    # formatting check

See CONTRIBUTING.md for guidelines and docs/ci.md for the CI pipeline.

Links

  • Visual Studio Marketplace
  • Changelog · License (MIT)
  • Pike language · tree-sitter-pike
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft