package Ġcom . github . sy uch an 1 0 0 5 . git prefix . git . commit Ċ Ċ import Ġcom . github . sy uch an 1 0 0 5 . git prefix . util . Prefix Resource File Util Ċ import Ġcom . github . sy uch an 1 0 0 5 . git prefix . util . get Flatten Property List Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . command . Write Command Action Ċ import Ġcom . intellij . openapi . editor . event . Document Event Ċ import Ġcom . intellij . openapi . editor . event . Document Listener Ċ import Ġcom . intellij . openapi . vcs . Check in Project Panel Ċ import Ġcom . intellij . openapi . vcs . changes . Commit Executor Ċ import Ġcom . intellij . openapi . vcs . check in . Check in Handler Ċ import Ġcom . intellij . psi . Smart Pointer Manager Ċ import Ġcom . intellij . ui . Editor TextField Ċ import Ġcom . intellij . util . Pair Consumer Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠPrefix Check in Handler ( private Ġval Ġpanel : ĠCheck in Project Panel ) Ġ: ĠCheck in Handler () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource File Ġ= ĠPrefix Resource File Util . get From Setting ( panel . project ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġproperty List Ġ= ĠPrefix Resource File Util . BlockType . COMMIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getBlock ( Prefix Resource File Util . create Structured File ( resource File , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Flatten Property List () ĊĊĠĠĠĠĠĠĠ ĠGit Commit ComboBox Action . check in Project Panel Ġ= Ġpanel ĊĠĠĠĠĠĠĠ ĠGit Commit ComboBox Action . current Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġeditor TextField Ġ= Ġpanel . preferred Focused Component Ġas ? ĠEditor TextField ĊĠĠĠĠĠĠĠ Ġeditor TextField ?. add Document Listener ( object Ġ: ĠDocument Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdocument Changed ( event : ĠDocument Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġraw Text Ġ= Ġevent . document . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( property Ġin Ġproperty List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( raw Text . startsWith ( property . key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWrite Command Action . run Write Command Action ( panel . project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . commit Message Ġ= Ġraw Text . substring ( property . key . length ). trim Start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGit Commit ComboBox Action . current Ġ= ĠSmart Pointer Manager . getInstance ( panel . project ). create Smart Psi Element Pointer ( property ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor TextField . remove Document Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Check in ( executor : ĠCommit Executor ?, Ġadditional Data Consumer : ĠPair Consumer < Any , ĠAny >): ĠReturn Result Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! panel . commit Message . startsWith ( prefix Text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . commit Message Ġ= Ġprefix Text Ġ+ Ġpanel . commit Message ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠReturn Result . COMMIT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprefix Text : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= ĠGit Commit ComboBox Action . current Property Ġ?: Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"${ property . key . trim ()} Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ