Package io.deephaven.lang.parse
Class PendingParse
- java.lang.Object
-
- io.deephaven.lang.parse.PendingParse
-
public class PendingParse extends java.lang.ObjectAn object to represent the operation of parsing documents from users. Because we update the server with new document state as the user types, we don't want to get a deluge of stale parse operations sucking down CPU. Only one version (the newest) of a given document will be parsed; all others will be cancelled.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcancel()Called when the user session is ended, and we need to shutdown.java.lang.StringgetText()voidinvalidate()Called when the document has been updated, but before we are ready to submit new text to be parsed.
-
-
-
Method Detail
-
cancel
public void cancel()
Called when the user session is ended, and we need to shutdown.
-
getText
public java.lang.String getText()
- Returns:
- The full document text of the last-received document edit.
-
invalidate
public void invalidate()
Called when the document has been updated, but before we are ready to submit new text to be parsed. We'll just interrupt the parser thread, so it has time to cancel any work before our caller submits the new work. Note that we don't update the targetState field, since we use it to return the current text. Our caller must call getText() above and then apply diffs to create new document text before it can call .requestParse(). Calling invalidate() gives the parser thread a little extra time to realize that it is processing stale input and throw ParseCancelled(), so the parser thread can be ready to immediately start work when .requestParse() is called.
-
-