Major release with expanded diagnostics, macro auto-resolution, performance optimizations, and Docker CI upgraded to Chez 10.4.1.
workspace/symbol search is now supported.source and code fields.lambda, case-lambda, let, letrec, let-values, do, define, with-syntax).only, except, rename, and alias modifiers.syntax-rules to syntax-case, let-syntax, and letrec-syntax. Multi-layer macro cascade reference propagation is fixed.define-record-type now infers record types; car/cdr family macros (caar, cadr, caddr, cadddr, caaar, cadar, etc.) have dedicated type rules.eq? hashtables; matrix operations rewritten with cons+reverse.Content-Length, and malformed JSON; shutdown/exit lifecycle fully compliant with the LSP spec; didChange auto-cancellation removed to comply with the spec; request-queue concurrency hardened with cancel barriers and log-mutex.chez-exe switched to the ufo5260987423/chez-exe fork for 10.x compatibility; test suite refactored to use AST search instead of hard-coded positions.Fixed pretty-print bugs that were mixed with standard I/O.
Publish diagnoses, though now only can figure out “fail to find library”.
Fix many bugs.
Fix many bugs and switch between different top environments.
Now, enjoy type inference!
Now hover and auto completion is ready for use. I also have done many things about parsing fault tolerance.
Fix bugs on uri parsing, do you know LSP request uri may wrongly process escape characters?
Fault tolerant parser.
Fix: Some protocol api bugs. And now it’s basically smooth with Magic Scheme and Vscode.
Fix: hover api. It failed when processing meta.
Why completion api doesn’t work well? I don’t know and just fix.
I just fixed some bugs processing my own other projects.
I just fixed some bugs processing SS/SCM codes.
Re-construct the identifier catching mechanism with abstract interpreter.
Scheme-langserver now releases type information used in corresponding libraries! Its soundness is still not guaranteed!
Type inference has been embedded into autocompletion! And it uses a homemade DSL.
Fix bug: sometimes can’t shutdown server. Optimization: re-construct document-sync mechanism.
Add ss/scm-import-rnrs option.
Gradual Typing system, all basic rules have been passed.
Fix bugs in 1.0.9.
Abandoned: add parallel and synchronize mechanism.
Build index as document synchronizing instead of workspace initializing.
Catch syntax-* identifier bindings.