J'essaie de créer mon propre fichier de retrait pour JavaScript. Le fichier d'indentation par défaut pour JavaScript est activé, avec un minimum de modifications, et je l'utilise comme base.
Sur Vim 7.3 pour OSX El Capitan, la saisie d'un tableau produit par défaut les éléments suivants:
var test = [
1,
2,
3
];
Et notez que même si ce n'est pas du JavaScript légal, j'ai remarqué que l'utilisation d'une virgule ne produit pas un comportement légèrement différent:
var test = [
1
2
3
];
Sur 7.4, taper les deux exemples ci-dessus produit ce que j'attends:
var test = [
1,
2,
3
];
var test = [
1
2
3
];
Cependant, si vous incluez certains caractères immédiatement après le crochet ouvert, cela revient en arrière:
var test = [1
2,
3,
4
];
Qu'est-ce qui contrôle l'indentation des lignes entre crochets ainsi que le placement du crochet carré de fermeture? Lors de la visualisation de la documentation Vim , je ne vois pas de valeur cinoptions qui capture cela.
la source
Réponses:
À en juger par votre commentaire ci-dessus, vous souhaitez utiliser uniquement
cinoptions
pour contrôler le retrait pour les crochets. Ce n'était tout simplement pas possible avant 7.4.355 d'après ce que je vois dans le code source . Cliquez sur blâme en haut pour voir la version balisée, mais cela va prendre un certain temps à charger.Comme il semble que
cinoptions
c'était à l'origine pour C, C ++ et Java, il ne traitait que les accolades et les parenthèses car les crochets sont utilisés pour définir les tailles de tableau ou accéder aux index dans ces langages - pas les initialiser.Après 7.4.355, c'est l'
J
option qui contrôle l'indentation, mais rien spécifiquement pour les crochets. D'après ce que j'ai ignoré dans la source, l'J
option signifie uniquement que la syntaxe JavaScript doit être prise en compte (curbuf->b_ind_js
). Il recherche une ligne précédente terminée par une virgule ou un crochet ouvrant pour s'aligner. Dans votre quatrième exemple, la ligne se termine par un1
, donc cela n'augmente pas l'indentation.Si la première ligne de votre quatrième exemple se terminait par un
[
ou,
(ou les deux[,
), les lignes suivantes augmenteraient le retrait.la source