@razdolbai/merls 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -41
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# merls
|
|
2
2
|
|
|
3
|
-
`merls` is a
|
|
3
|
+
`merls` is a language server for **Merlin-style 6502 assembly** with **coc.nvim** as the primary editor target.
|
|
4
4
|
|
|
5
5
|
## Status
|
|
6
6
|
|
|
@@ -34,7 +34,7 @@ The MVP LSP feature set for Merlin-style 6502 assembly is complete and published
|
|
|
34
34
|
- assembler-backed diagnostics in the first implementation pass
|
|
35
35
|
- coc.nvim-specific plugin code for the MVP
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Implementation
|
|
38
38
|
|
|
39
39
|
- **runtime:** Node.js
|
|
40
40
|
- **language:** TypeScript
|
|
@@ -64,21 +64,7 @@ The packaged CLI entrypoint now lives at `dist/src/cli.js`.
|
|
|
64
64
|
|
|
65
65
|
The supported stdio launch contract is `merls --stdio`.
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
## Roadmap
|
|
70
|
-
|
|
71
|
-
The current plan is organized into these phases:
|
|
72
|
-
|
|
73
|
-
1. bootstrap the Node/TypeScript workspace
|
|
74
|
-
2. define the 6502 Merlin syntax corpus and shared metadata
|
|
75
|
-
3. implement the lexer, parser, and document model
|
|
76
|
-
4. implement symbols, include handling, and diagnostics
|
|
77
|
-
5. add the MVP LSP features
|
|
78
|
-
6. package and verify coc.nvim integration
|
|
79
|
-
|
|
80
|
-
See `PLAN.md` for the full checklist.
|
|
81
|
-
|
|
67
|
+
|
|
82
68
|
## coc.nvim target
|
|
83
69
|
|
|
84
70
|
The intended integration model is a standard `languageserver` entry in `coc-settings.json` that launches `merls` over stdio.
|
|
@@ -109,27 +95,9 @@ An example configuration lives in `examples/coc-settings.json`.
|
|
|
109
95
|
## Development notes
|
|
110
96
|
|
|
111
97
|
- TDD is mandatory for implementation work in this repository.
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
- The
|
|
115
|
-
- The
|
|
116
|
-
- The
|
|
117
|
-
- The
|
|
118
|
-
- The current symbol collector now lives in `src/asm/symbols.ts` and indexes labels, equates, and named storage/data definitions.
|
|
119
|
-
- The current local-label resolver now lives in `src/asm/local-labels.ts` and resolves Merlin `]local` and `:local` labels within the nearest global-label scope.
|
|
120
|
-
- The current workspace indexer now lives in `src/asm/workspace.ts` and follows `asm`/`put`/`use` directives across the local fixture corpus.
|
|
121
|
-
- The current diagnostics pass now lives in `src/asm/diagnostics.ts` and reports duplicate symbols, unresolved references, malformed lines, and unsupported 65816-only syntax.
|
|
122
|
-
- The current `textDocument/documentSymbol` provider is wired through `src/server.ts` and `src/lsp/document-symbols.ts`.
|
|
123
|
-
- The current `workspace/symbol` provider is wired through `src/server.ts` and `src/lsp/workspace-symbols.ts` over the open-document symbol set.
|
|
124
|
-
- The current `textDocument/definition` and `textDocument/references` handlers are wired through `src/server.ts` and `src/lsp/symbol-navigation.ts`.
|
|
125
|
-
- The current `textDocument/hover` handler is wired through `src/server.ts` and `src/lsp/hover.ts`.
|
|
126
|
-
- The current `textDocument/completion` handler is wired through `src/server.ts` and `src/lsp/completion.ts`.
|
|
127
|
-
- The current `textDocument/publishDiagnostics` path is wired through `src/server.ts` and `src/lsp/diagnostics.ts`, with full-document sync on open and change so coc.nvim receives live parser and resolver errors.
|
|
128
|
-
- The packaged CLI entrypoint now lives in `src/cli.ts`, compiles to `dist/src/cli.js`, and supports the explicit stdio contract `merls --stdio`.
|
|
129
|
-
- The checked-in coc.nvim example targets the globally installed `merls` command and includes root detection for `.git`.
|
|
130
|
-
- The positive fixture corpus now starts with transcribed Merlin32 material under `test/fixtures/valid/`.
|
|
131
|
-
- Positive fixtures should cover supported 6502 Merlin-style syntax.
|
|
132
|
-
- The negative fixture corpus now starts with explicit 65816-only samples under `test/fixtures/invalid/`.
|
|
133
|
-
- Negative fixtures should explicitly cover unsupported 65816 syntax.
|
|
134
|
-
- The current bootstrap test harness is intentionally minimal and runs against compiled output to avoid depending on editor or browser tooling.
|
|
135
|
-
- The current integration coverage reaches through stdio `initialize`, the packaged CLI contract, completion, hover, symbol navigation, and diagnostics publication.
|
|
98
|
+
- Core syntax, parsing, and document model logic is located in `src/asm/`.
|
|
99
|
+
- LSP handlers (hover, completion, diagnostics, etc.) are located in `src/lsp/`.
|
|
100
|
+
- The CLI entrypoint lives in `src/cli.ts` and compiles to `dist/src/cli.js`.
|
|
101
|
+
- The `test/fixtures/valid/` directory contains supported 6502 Merlin-style syntax samples.
|
|
102
|
+
- The `test/fixtures/invalid/` directory contains unsupported 65816-only syntax samples for negative testing.
|
|
103
|
+
- The integration test suite covers stdio `initialize`, the CLI contract, and core LSP features.
|