Every issue the JSON parser envelope would carry for bitmark source, as
LSP Diagnostics with encoded positions (PLAN-196) — the typed form of
convert(input, { inputFormat: "bitmark", outputFormat: "diagnostics" }).
Parse and validate, no serialization: cheap enough to run on every
keystroke. Same codes, same spans and same order as the envelope's
errors / warnings / infos, whose buckets become LSP severities
1 / 2 / 3. code is the contract; message is prose. data.bit is the
bit's index in the JSON array. Feed the list to editor.setModelMarkers
(Monaco) or publishDiagnostics (LSP) as is.
Every issue the JSON
parserenvelope would carry for bitmark source, as LSPDiagnostics with encoded positions (PLAN-196) — the typed form ofconvert(input, { inputFormat: "bitmark", outputFormat: "diagnostics" }).Parse and validate, no serialization: cheap enough to run on every keystroke. Same codes, same spans and same order as the envelope's
errors/warnings/infos, whose buckets become LSP severities 1 / 2 / 3.codeis the contract;messageis prose.data.bitis the bit's index in the JSON array. Feed the list toeditor.setModelMarkers(Monaco) orpublishDiagnostics(LSP) as is.