Hat jemand einen 'htmlmixed' + 'Velocity' Modus für Codemirror gemacht? Oder kann jemand Rat geben, wie man das erreicht?Ist es möglich, sowohl den CodeMirror: Velocity-Modus und den CodeMirror: HTML gemischten Modus zu mischen?
Antwort
Sie können möglicherweise mit der mode-multiplexer irgendwo hinkommen, wenn es bestimmte Zeichenfolgen gibt, die Sie verwenden möchten, um den Modus zu aktivieren. Aber es sieht so aus, als würde Velocity etwas fortgeschritteneres erfordern. Sie müssten also Ihren eigenen Super-Modus schreiben, ähnlich wie der htmlmixed-Modus, der intelligent zwischen den Modi wechselt.
Ich glaube nicht, dass Sie mischen können sowohl die CodeMirror: Velocity mode und die CodeMirror: HTML mixed mode. Ein Modus ist die Art und Weise Dinge in einer bestimmten Art und Weise zu tun. Wie konntest du zwei Modi vermischen? Ich glaube nicht, dass es eine Möglichkeit gibt.
Ich konnte dies mit dem overlay.js Addon leicht erreichen:
CodeMirror.defineMode("velocityOverlay", function(config, parserConfig) {
return CodeMirror.overlayMode(CodeMirror.getMode(config, "htmlmixed"), CodeMirror.getMode(config, "velocity"));
});
dann im Editor den Modus Option „velocityOverlay“ und du bist fertig zu sein.
Allerdings hebt der Velocity-Modus Zeichen wie <,>, etc als Velocity-Operatoren, die Sie nicht wollen, da es Ihre HTML-Higlighting aussehen hässlich aussehen wird. Zur Bewältigung dieser änderte ich die folgende Codezeile in velocity.js:
var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
zu
var isOperatorChar = /[+\*&%=?:|]/;
perfekt gearbeitet. Vielen Dank! –