Use Yojson and lsp types for analysis JSON output#8436
Draft
aspeddro wants to merge 16 commits into
Draft
Conversation
Replace the vendored JSON helpers with Yojson and the OCaml lsp types across analysis, reanalyze, and tools JSON handling. This updates LSP response construction for completions, hovers, diagnostics, code actions, symbols, signature help, and related CLI commands, refreshes analysis snapshots, and adjusts extract-codeblocks decoding for the new serialized output.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #8436 +/- ##
==========================================
+ Coverage 59.90% 60.08% +0.17%
==========================================
Files 373 373
Lines 54228 54054 -174
==========================================
- Hits 32487 32476 -11
+ Misses 21741 21578 -163
🚀 New features to boost your workflow:
|
Serialize analysis command results with Yojson output helpers instead of string extraction, fixing document symbols so they return JSON arrays instead of crashing. Also use typed LSP enum constructors for completion and inlay hint kinds, clean up JSON config parsing, and update analysis test snapshots.
Replace the custom URI record with Lsp.Uri.t and delegate path/URI conversion to the LSP library. This fixes interface-aware analysis results so definitions, references, and renames consistently target .resi files when an interface is present, and updates the analysis snapshots accordingly.
aspeddro
commented
May 23, 2026
Comment on lines
-163
to
-172
| match | ||
| Tools.ExtractCodeblocks.extractCodeblocksFromFile ~transformAssertEqual | ||
| ~entryPointFile:path | ||
| with | ||
| | Ok _ as r -> | ||
| print_endline (Analysis.Protocol.stringifyResult r); | ||
| exit 0 | ||
| | Error _ as r -> | ||
| print_endline (Analysis.Protocol.stringifyResult r); | ||
| exit 1) |
Contributor
Author
There was a problem hiding this comment.
If is an error print to stderr
rescript
@rescript/darwin-arm64
@rescript/darwin-x64
@rescript/linux-arm64
@rescript/linux-x64
@rescript/runtime
@rescript/win32-x64
commit: |
…GenericJsxCompletion.res.txt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace the vendored JSON helpers with Yojson and the OCaml lsp types across analysis, reanalyze, and tools JSON handling.
This updates LSP response construction for completions, hovers, diagnostics, code actions, symbols, signature help, and related CLI commands, refreshes analysis snapshots, and adjusts extract-codeblocks decoding for the new serialized output.
TODO
nullCherry-pick of #8425
Close #7456