lspclient update

Christoph Cullmann christoph at cullmann.io
Sat Aug 10 20:22:15 BST 2019


Hi,

> There is still something else to (really) enable in this area
> (document changes).  The RevisionGuard is in place to "lock" old
> revision (using MovingInterface), to pass this along to a server call
> and then use the old revision to translate ranges (wrt old revision)
> to current one (as there may have been changes in the meantime).
> However, as I see/understand it (and so documented), even when locked,
> an old revision might still get invalidated (e.g. when a clear()
> happens in katetexthistory.cpp.  Also, however, it is not certain (or
> evident) if/how to detect that this happens.  Is it guaranteed that
> (e.g.) aboutToInvalidateMovingInterfaceContent will be emitted if such
> a clear() occurs (or anything that might invalidate even locked
> revisions)?  Since using a revision in transform (or unlock) calls
> that is no longer valid will trigger unfortunate asserts (or other
> things if assert disabled).

you can be sure that either aboutToDeleteMovingInterfaceContent (if the 
document will be deleted) or
aboutToInvalidateMovingInterfaceContent (if an action of the document 
happens that invalidates the stuff)
is emitted.

Greetings
Christoph

-- 
Ignorance is bliss...
https://cullmann.io | https://kate-editor.org


More information about the KWrite-Devel mailing list