Closed 6cdh closed 1 year ago
I think the title can be "Add document check job queue, abstract out lsp-editor%
"
The new fix editor crash
commit fixed a random editor crash with this message:
sequence-contract-violation: negative: method insert cannot be called
It's a well known bug that no one knows how it happened. https://github.com/racket/drracket/issues/522
I found it today and added a workaround that recreate a new text%
to replace to old one.
Everything should work fine right now to be merged.
I did
match
on structDoc
, Use struct accessor instead. Sodoc
can contain extra hidden fields.doc.rkt
between check-syntax, doc-trace and text-document, and move some code fromtext-document.rkt
todoc.rkt
. TheDoc-text
,Doc-trace
should not be called intext-document.rkt
, it should call a proxy method indoc.rkt
instead.check-syntax
so that it's not called here and there. It's only called indoc-run-check-syntax
now.check-syntax
. It no longer sends diagnostics directly, instead, it returns diagnostics.lsp-editor%
instead of usingtext%
orracket:text%
everywhere. It would be useful if we write our own implementation to solve the gui problem.expand
, should fix #109.queue-only-latest.rkt
implementation.check-syntax
job and a pending job in the whole program. Any new incoming job will replace the pending job.scheduler.rkt
, every document that is identified by uri can have a running job. Any new incoming job for this document will kill the old running job and run itself.build-trace%
object not#f
. It will fix many crash problem ifcheck-syntax
never succeed.The following issues will be fixed
101
97