Ich versuche, meine eigene Einrückungsdatei für JavaScript zu erstellen. Die Standard-Einrückungsdatei für JavaScript wird mit minimalen Änderungen aktiviert, und ich verwende sie als Basis.
Unter Vim 7.3 für OSX El Capitan führt die Eingabe eines Arrays standardmäßig zu folgenden Ergebnissen:
var test = [
1,
2,
3
];
Beachten Sie, dass JavaScript zwar kein legales JavaScript ist, ich jedoch festgestellt habe, dass die Verwendung eines Kommas zu einem etwas anderen Verhalten führt:
var test = [
1
2
3
];
Wenn Sie in 7.4 die beiden obigen Beispiele eingeben, erhalten Sie das, was ich erwarte:
var test = [
1,
2,
3
];
var test = [
1
2
3
];
Wenn Sie jedoch einige Zeichen unmittelbar nach der offenen eckigen Klammer einfügen, ist dies nicht mehr der Fall:
var test = [1
2,
3,
4
];
Was steuert die Einrückung der Linien zwischen eckigen Klammern sowie die Platzierung der schließenden eckigen Klammer? Beim Anzeigen der Vim-Dokumentation wird kein Cinoptions-Wert angezeigt, der dies erfasst.
quelle
Antworten:
Nach Ihrem obigen Kommentar möchten Sie nur
cinoptions
den Einzug für eckige Klammern steuern. Nach dem, was ich im Quellcode sehe, war es vor 7.4.355 einfach nicht möglich . Klicken Sie oben auf "Schuld", um die getaggte Version anzuzeigen. Das Laden dauert jedoch eine Weile.Da es
cinoptions
ursprünglich für C, C ++ und Java gedacht war, wurden nur geschweifte Klammern und Klammern behandelt, da eckige Klammern zum Definieren von Arraygrößen oder zum Zugreifen auf Indizes in diesen Sprachen verwendet werden - ohne sie zu initialisieren.Nach 7.4.355 ist es die
J
Option, die den Einzug steuert, jedoch nichts spezielles für eckige Klammern. Nach dem, was ich in der Quelle beschönigt habe, bedeutet dieJ
Option nur, dass die JavaScript-Syntax berücksichtigt werden sollte (curbuf->b_ind_js
). Es wird nach einer vorherigen Zeile gesucht, die durch ein Komma oder eine öffnende Klammer abgeschlossen wird. In Ihrem vierten Beispiel endet die Zeile mit einem1
, sodass die Einrückung nicht erhöht wird.Wenn die erste Zeile in Ihrem vierten Beispiel mit einem
[
oder,
(oder beiden[,
) endet, erhöhen die nachfolgenden Zeilen den Einzug.quelle