Status: designing...
User types a character ("UT") :position, character
UT -> AWT/Swing -> kit.ExtDefaultKeyAction lockDocument detachCompletionDocumentHandler detachCompletionCaretHandler updateDocument switch lexsupport.codeCompletion cc.autoShow cc.refresh cc.hide attachCompletionCaretHandler attachCompletionDocumentHandler unlockDocument
User moves caret ("UM") (navigation keys or mouse click) :position
UM -> AWT/Swing -> cc.CaretListener cc.cancel()
User invokes code assistent ("UC") :position
UC -> AWT/Swing -> kit.AssistantAction cc.show
User invokes kill assistant action
UC -> AWT/Swing -> kit.AssistantAction cc.hide
User invokes select assistant action
UC -> AWT/Swing -> kit.AssistantAction cc.hide cc.perform ??? [order is pending]
Module modifies document ("MM") :documentEvent
MM -> unknown thread -> cc.DocumentListener cc.refresh
+ Completion: + autoShow(position, character) instruct completion to open sometimes + show(position, character) instruct completion to open in limited time + refresh(position, character) if open then update content + refresh(documentEvent) if open then update content + hide() hide view
+ CompletionEnvironment implements DocumentListener, CaretListener disableDocumentListener enableDocumentListener disableCaretListener enableCaretListener