Refactor analysis to decouple I/O from core logic (#8426)
* Refactor analysis to decouple I/O from core logic Splits `Commands.ml` into a pure layer that returns OCaml values (option, list, typed records like Protocol.hover, Protocol.signatureHelp, Protocol.completionItem) and a new `analysis/src/Cli.ml` that does the stringify-and-print step. `analysis/bin/main.ml` now dispatches to `Cli.*`, while the LSP server consumes `Commands.*` directly. Makes the parsers accept source strings: `res_driver` gains `parse_interface_from_source` alongside the existing `parse_implementation_from_source` * Rename `tokenModifiersString` to `tokenModifiers` with correct type * update CHANGELOG.md * Fix format range to use accurate line/character positions The previous implementation used the source byte length as both line and character values for the end of the format range, which was incorrect. Replace it with a helper that computes the actual final line index and character offset by splitting on newlines. Signed-Off-By: Your Name <email> * Refactor token debugger to use typed input variant --------- Signed-off-by: Your Name <email>
P
Pedro Castro committed
ecb1bbaf0a1da3b7a48563ace73965897e4b8ff8
Parent: de28ae6
Committed by GitHub <noreply@github.com>
on 5/22/2026, 12:31:31 PM