Metadata-Version: 2.4
Name: bcpl-lsp
Version: 0.3.2
Summary: Language Server Protocol implementation for Martin Richards' BCPL
Author: Paul George
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
Requires-Python: >=3.10
Requires-Dist: lsprotocol
Requires-Dist: pygls>=2.0
Description-Content-Type: text/markdown

# BCPL LSP

Language Server Protocol implementation for [Martin Richards' BCPL](https://www.cl.cam.ac.uk/~mr10/BCPL.html).

## Install

```bash
pip install bcpl-lsp
# or
uv tool install bcpl-lsp
```

The server speaks LSP over stdio:

```bash
bcpl-lsp --stdio
```

## VS Code Extension

Install **BCPL LSP for VS Code** from the
[Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=se9-solutions.bcpl-lsp).
The extension automatically starts the language server when you open a `.b` or `.bcpl` file.

## Features

- Syntax highlighting (TextMate grammar)
- Completion (keywords with snippets, document symbols)
- Go to Definition
- Find References
- Hover (signatures and documentation)
- Rename (across files)
- Diagnostics (unresolved symbols, duplicate globals, unused variables)
- Semantic Tokens
- Document and Workspace Symbols
- Call Hierarchy

## BCPL Dialect

Targets canonical BCPL with uppercase keywords (`LET`, `IF`, `THEN`, `GET`, etc.).

## License

MIT
