multi-mode

Manch­mal ist es wün­schens­wert, mehrere un­ter­schied­liche »ma­jor modes« in einem Buffer nutzen zu kön­nen. Ein sol­cher Fall tritt ein, wenn man Kom­men­ta­re in einem Buffer mit Text in einer Pro­gram­mier­spra­che edi­tiert. Hier könn­te es vor­teil­haft sein, einen zu dem Mode des Pro­gramm­codes völ­lig unter­schied­lichen Mode zu ver­wenden.

Ich habe diese Ar­beits­weise an­ge­wen­det, um Pro­log-code zu edi­tie­ren. Der Code selbst wird im pro­log-mode be­ar­bei­tet und die Kom­men­ta­re im LaTeX-mode.

Es ist wün­schens­wert ver­schie­dene Modes zu ver­wenden, an­statt einen Mode an­zu­reichern, weil viel Auf­wand be­reits in die ver­schie­den­en Modes ge­flos­sen ist. Damit kann die Du­pli­zie­rung die­ser Ar­beit ver­mie­den wer­den.

Der multi-mode »mi­nor mode« stellt ein Mit­tel be­reit, um solch ein feature um­zu­setzen.

Die Modes wer­den durch Start­se­quen­zen be­schrie­ben. Ich gehe da­von aus, dass be­stimm­te To­kens (das sind Über­gangs­zei­chen­ke­tten) die Stel­len be­zeich­nen, an denen auf einen neuer Mode um­ge­schal­tet wer­den muss. Um einen Mode für eine Stel­le im Buffer zu be­stim­men ist es also nur not­wendig, die letzte Über­gangs­zei­chen­ke­tte vor dem Punkt zu fin­den.

Der ge­wünsch­te Mode wird durch eine Lis­te von Paaren oder Tri­peln be­schrie­ben, die aus einer Über­gangs­zei­chen­ke­tte und einem Mode be­stehen. Op­ti­o­nal kann ein Funk­ti­ons­sym­bol an­ge­ge­ben wer­den, das eva­lu­iert wird, um den ge­wünsch­ten Mode zu ak­ti­vie­ren. Zu­sätz­lich muss noch der Mode an­ge­ge­ben wer­den, der ge­nutzt wer­den soll, falls keine Über­gangs­zei­chen­ke­tte ge­fun­den wer­den kann.

Down­load

Hier sind die Quel­len und die Do­ku­men­ta­tion ver­füg­bar.

Quell­code für Mode und Do­ku­men­ta­tion
multi-mode.el, 10 kb