2017-09-03 3 views
0

Ich möchte Codemirror codefolding verwenden, um nur { und } sowie Kommentare zu falten. Das einzige Problem, das ich habe, ist, dass es auch die Klammern [ und ] codiert. Die eckigen Klammern sind fast immer Teil einer Zeile Anweisungen und ich möchte keine Code-Faltung für sie verwenden. Wie kann ich das verhindern?Codemirror-Codefaltung ohne "[" verwenden?

In codemirror/addon/fold/brace-fold.js Ich habe versucht, diese Zeilen zu kommentieren out:

if (startCh == null) { 
    startToken = "[", endToken = "]"; 
    startCh = findOpening("["); 
    } 

aber noch nicht daran hindert, für eckige Klammern Code-Faltung. Auch irgendwelche Ideen was addon/fold/indent-fold.js tut? Ich bin mir nicht sicher, ob ich diese Datei aufnehmen sollte.

N.B. Ich benutze Codefolding für beide Modi, JavaScript und PHP.

EDIT

Hier ist eine Demonstration von Codemirror codefolding.

+1

Geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] an (http://stackoverflow.com/help/mcve). Auf meiner Codemirror-Instanz funktionierte das. Wie bei der Indent-Faltung funktioniert es genauso wie "Brace-Fold", aber für Einrückungen, bei Sprachen, bei denen die Einrückung Code-Blöcke markiert. – Salketer

+0

Ich habe es jetzt funktioniert. Es war ein Cache-Problem. Ich habe ausgeschlossen, dass es sich um ein Problem mit dem Cache handelt, weil ich F5 gedrückt habe, um den Cache zu löschen, und wenn ich 'var startToken = "{", endToken = "}" auskommentierte, starteCh = findOpening ("{"; '.' Die Änderung wurde sofort aktualisiert. –

+0

@Salketer Ich kann mir kein Kopfgeld geben, also kannst du bitte eine Antwort posten? –

Antwort

1

Der OP-Code ist in Ordnung.

Nach den Kommentaren kam das Problem von einer im Cache gespeicherten Version der Datei, so dass die Änderung scheint, als ob sie nicht funktionieren.

Um diese Art von Problem in der Zukunft zu vermeiden, beachten Sie, dass das Drücken von F5 den Cache nicht löscht. Sie müssen Strg + F5 verwenden. Eine weitere gute Option, die ich verwende, ist in den Entwicklertools (ich benutze Chrome, aber es ist sicherlich auch in anderen Browsern vorhanden). Sie können den Browser so einstellen, dass der Cache gelöscht wird, wenn die Devtools geöffnet sind. Da die Registerkarte beim Testen Ihrer Website fast immer geöffnet ist, werden dadurch Cache-Probleme vermieden.