FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: bismosa am 02 Mai 2025, 17:00:05

Titel: [codemirror] codeFolding Tastenkürzel
Beitrag von: bismosa am 02 Mai 2025, 17:00:05
Hallo!

Ich hoffe @betateilchen liest hier mit  :)

Ich nutze gerne den codemirror-Editor. Habe jetzt das Feature codeFolding entdeckt. Super Sache!
https://forum.fhem.de/index.php?msg=1275389
Allerdings bin ich mit dem Tastenkürzel für das Einklappen sehr unglücklich.
ZitatCTRL-X = der aktuelle Codeblock wird zusammengefaltet. Begrenzung ist jeweils die geschweifte Klammer in oder oberhalb der aktuellen Zeile, in der sich der Cursor befindet.
Das ist ein häufig benutztes Kürzel um mal eben eine Zeile auszuschneiden...z.B. um sie von einer Position in eine andere zu kopieren.
Lassen sich diese Kürzel vielleicht ändern oder deaktivieren? Das Folding ist sehr praktisch...aber so leider nicht für mich brauchbar ;)

Gruß
Bismosa
Titel: Aw: [codemirror] codeFolding Tastenkürzel
Beitrag von: betateilchen am 02 Mai 2025, 19:44:08
Zitat von: bismosa am 02 Mai 2025, 17:00:05Ich hoffe @betateilchen liest hier mit  :)

Ja, schon. Aber als "Developer" solltest Du wissen, dass man in der MAINTAINER.txt in aller Regel das "richtige" Unterforum zu einem Thema finden kann, so auch für codemirror.

Zitat von: bismosa am 02 Mai 2025, 17:00:05
ZitatCTRL-X = der aktuelle Codeblock wird zusammengefaltet...
Das ist ein häufig benutztes Kürzel um mal eben eine Zeile auszuschneiden...z.B. um sie von einer Position in eine andere zu kopieren.
Lassen sich diese Kürzel vielleicht ändern oder deaktivieren? Das Folding ist sehr praktisch...aber so leider nicht für mich brauchbar ;)

Das Problem stellt sich bei jeder Tastenkombination, die in codemirror verwendet wird.
Und dann verschärft sich das Problem noch dadurch, dass Windows und MacOS teilweise unterschiedliche Hotkeys "belegt" haben...

Das codefolding wurde im Mai 2023 hinzugefügt. Seit dem Zeitpunkt bist Du der Erste, der damit ein Problem hat.

Dass das folding nicht nutzbar sein soll, kann ich nicht nachvollziehen, es gibt mindestens zwei Workarounds:


Im Moment habe ich nicht die Absicht, an der seit zwei Jahren bestehenden Hotkey-Definition etwas zu ändern.
Titel: Aw: [codemirror] codeFolding Tastenkürzel
Beitrag von: bismosa am 02 Mai 2025, 20:01:49
Hallo!

Danke für die Antwort!
Zitat von: betateilchen am 02 Mai 2025, 19:44:08in der MAINTAINER.txt in aller Regel das "richtige" Unterforum zu einem Thema finden kann, so auch für codemirro
Öhm...nö. das war mir gerade tatsächlich neu.  ::) Danke für den Hinweis.
Ich bin kein wirklich aktiver Developer. Hatte mal Gründe, warum ich diesen Status gebraucht habe. So fit bin ich da leider nicht und habe hier auch keine Aktiven Module in der Pflege. Dafür brauche ich noch viel Übung und Zeit. Ich habe nur an einigen Sachen bereits mitgewirkt.

Zitat von: betateilchen am 02 Mai 2025, 19:44:08Das codefolding wurde im Mai 2023 hinzugefügt.
Und ich habe es erst jetzt entdeckt. Das liegt aber auch daran, das ich nicht immer hier im Forum unterwegs bin und nicht alles mitbekomme.

Zitat von: betateilchen am 02 Mai 2025, 19:44:08Dass das folding nicht nutzbar sein soll, kann ich nicht nachvollziehen
Ich vermute du nutze Apple mit anderen hotkeys?
Ich habe es jetzt ein paar Tage versucht. Dabei habe ich für mich persönlich festgestellt, das ich zu Oft Strg+X verwende...die Gewohnheit schlägt hier halt einfach zu. Und jedes Mal falle ich wieder darauf rein. Ist sicherlich eine persönliche Geschichte.

Zitat von: betateilchen am 02 Mai 2025, 19:44:08Im Moment habe ich nicht die Absicht, an der seit zwei Jahren bestehenden Hotkey-Definition etwas zu ändern.
Kann ich gut verstehen. Vermutlich nutzen einige es schon und haben sich daran gewöhnt.
Ich hatte auch die Hoffnung, das es über die codemirrorParam persönlich änderbar ist. Nicht für alle.

Gruß
Bismosa
Titel: Aw: [codemirror] codeFolding Tastenkürzel
Beitrag von: bismosa am 04 Mai 2025, 20:24:45
Hallo!

Ich habe nun eine Lösung für mich gefunden, die dann auch weitere FHEM-Updates übersteht:
Hier wird einfach strg-X wieder aus Codemirror entfernt:

Datei fhem\www\bismosa\bismosa.js:
/*
Skript um Ctrl-X im Codemirror zu deaktivieren
Übersteht auch weitere FHEM-Updates
*/
function startObserving() {
    const observer = new MutationObserver(function (mutations) {
        mutations.forEach(function (mutation) {
            mutation.addedNodes.forEach(function (node) {
                if (!(node instanceof HTMLElement)) return;

                // Prüfe: ist der Knoten selbst ein .CodeMirror?
                if (node.classList.contains("CodeMirror")) {
                    disableKey();
                    observer.disconnect();
                    return;
                }

                // Prüfe: enthält der Knoten irgendwo .CodeMirror?
                const cm = node.querySelector(".CodeMirror");
                if (cm) {
                    disableKey();
                    observer.disconnect();
                }
            });
        });
    });

    observer.observe(document.body, { childList: true, subtree: true });

    function disableKey() {
cm_attr.extraKeys['Ctrl-X'] = false;
        console.log("Ctrl-X deaktiviert für CodeMirror");
    }
}

if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", startObserving);
} else {
    startObserving();
}
Und dann
attr WEB JavaScripts codemirror/fhem_codemirror.js  bismosa/bismosa.js
Nun ist das CodeFolding auch ein super Feature für mich  :)

Gruß
Bismosa