Reference

Language Server (LSP)

Run point lsp in any editor for diagnostics, navigation, hover, and format.

Summary

point lsp is a stdio Language Server in the same npm package as the CLI. Install once; any LSP-capable editor can use it without a separate download.

Install

Project-local (recommended for teams):

bun install          # after @hatchingpoint/point is in package.json
bun .point/lsp.mjs lsp

Projects from point create or point init include .point/lsp.mjs and .point/editor.json.

Global (optional):

bun install -g @hatchingpoint/point
point lsp

Updating @hatchingpoint/point updates the LSP. No cloud server is required.

Features

LSP featureBacked by
Diagnosticscheck-json with semantic spans
Document symbolsindex
Go to definitionSemantic symbol spans
Hoverexplain
Format documentfmt
Completion, renameBuilt into LSP server

VS Code and Cursor

Install Point Language from the Marketplace. The extension starts point lsp — the same server as Neovim and Zed. Format on save is enabled by default for .point files.

The extension is optional. The CLI and LSP are the portable contract.

Neovim

Verified config: editors/neovim/point.lua in the Point repository.

cp editors/neovim/point.lua ~/.config/nvim/lua/point.lua

In init.lua: require("point")

Ensure point is on PATH (which point / where point).

Zed

Merge editors/zed/settings.json from the Point repository into your Zed settings:

{
  "lsp": {
    "point": {
      "command": "point",
      "args": ["lsp"],
      "languages": ["Point"]
    }
  }
}

Register the .point extension if your Zed build requires it.

Terminal-only

Without LSP:

point check myfile.point
point fmt myfile.point
point check-json myfile.point

Syntax highlighting

TextMate grammar: packages/point-vscode/syntaxes/point.tmLanguage.json. Copy or symlink into editors that support TextMate grammars.

Troubleshooting

  • No diagnostics: run point check-json myfile.point from the project root
  • Server not found: reinstall the npm package; ensure Bun is on PATH (CLI runs on Bun)
  • Wrong workspace: open the folder that contains your .point files as the editor root

See also