[codemirror] codeFolding Tastenkürzel

Begonnen von bismosa, 02 Mai 2025, 17:00:05

Vorheriges Thema - Nächstes Thema

bismosa

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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

betateilchen

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:

  • Du kannst eine markierte Zeile auch mit CTRL-C kopieren, sie dann einfach löschen (sie ist ja noch markiert) und danach woanders mit CTRL-V einfügen. Das ist letztlich nur ein einziger Tastendruck mehr.
  • Man kann mit CTRL-I alle codefolds auf einmal schließen und dann mit der Maus links am Rand einfach die öffnen, die man gerade wirklich braucht. Umgekehrt kann man mit CTRL-J alle codefolds auf einmal wieder öffnen.

Im Moment habe ich nicht die Absicht, an der seit zwei Jahren bestehenden Hotkey-Definition etwas zu ändern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bismosa

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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

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
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...