@paulhocker/kickass-lsp
v1.0.0
Published
Kick Assembler LSP Server - works with VS Code, Neovim, and other LSP clients
Readme
kickass-lsp — LSP Server for Kick Assembler
Standalone LSP (Language Server Protocol) server for Kick Assembler. Works with any LSP-compliant client (VS Code, Neovim, Helix, etc.).
Prerequisites
- Node.js 18+
- Java (for invoking the Kick Assembler JAR)
- Kick Assembler JAR (download from theweb.dk)
Build
cd kickass-lsp
npm install
npm run buildOutput: dist/Index.js
Verify
node dist/Index.js --stdio
# Press Ctrl+C to exit (or send EOF)Run
stdio (for Neovim, CLI testing)
node dist/Index.js --stdioTCP (for remote clients, debugging)
node dist/Index.js --socket=3007Testing with lsp-inspector
# In one terminal:
node dist/Index.js --stdio
# In another:
lsp-inspectorFile Types Recognized
| Extension | Description |
|-----------|-------------|
| .asm | Assembly source |
| .s | Assembly source |
| .src | Source file |
| .kick | Kick Assembler file |
| .ka | Kick Assembler file |
| .inc | Include file |
| .lib | Library file |
| .macro | Macro file |
Feature Status
| Feature | Status |
|---------|--------|
| Hover (opcode info, label values, number conversions) | Working |
| Completion (directives, opcodes, labels, macros, functions) | Working |
| Build (workspace/executeCommand) | Working |
| Definition (go to label/macro/include) | Stub — returns null |
| References | Stub — returns empty |
| Document Symbols | Stub — returns empty |
| Signature Help | Stub — returns null |
| Diagnostics publishing | Stub — logs only |
Configuration
Settings are provided by the client at startup. Required settings:
kickassembler.assembler.jar— path to KickAss.jarkickassembler.java.runtime— Java executable (default:java)
Project Structure
kickass-lsp/
├── src/
│ ├── Index.ts -- Entry point
│ ├── Server.ts -- Handler registration
│ ├── Handlers/ -- LSP method handlers (13)
│ ├── Services/ -- AssemblerService, SymbolCache, SettingsProvider
│ ├── Builders/ -- Hover + Completion content builders (22 files)
│ ├── Data/ -- Instructions, Directives, Preprocessors, C64MemoryMap
│ ├── Types/Index.ts -- All TypeScript interfaces
│ ├── Utils/ -- AsmInfoParser, SourceUtils
│ ├── __tests__/ -- Unit tests (37)
│ └── __integration__/ -- Integration tests (3, need bundled JAR)
└── dist/ -- Built output