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