Cosa controlla il rientro delle linee che seguono una parentesi quadra aperta quando si usa cindent?


8

Sto cercando di creare il mio file di rientro per JavaScript. Il file di rientro predefinito per JavaScript si attiva, con modifiche minime, e lo sto usando come base.

Su Vim 7.3 per OSX El Capitan, la digitazione di un array produce per impostazione predefinita quanto segue:

var test = [
1,
    2,
    3
    ];

E nota, pur non essendo JavaScript legale, ho notato che non usare una virgola produce un comportamento leggermente diverso:

var test = [
1
2
3
];

Su 7.4, digitando i due esempi precedenti si ottiene ciò che mi aspetto:

var test = [
    1,
    2,
    3
];

var test = [
    1
    2
    3
];

Tuttavia, se includi alcuni caratteri che seguono immediatamente la parentesi quadra aperta, questa esce di nuovo da Whack:

var test = [1
2,
    3,
    4
];

Cosa controlla il rientro delle linee tra parentesi quadre e il posizionamento della parentesi quadra di chiusura? Durante la visualizzazione della documentazione di Vim , non vedo un valore cinoptions che catturi questo.


1
Hai provato questo github.com/pangloss/vim-javascript ?
Ôrel

1
Ho ma quel plugin sembra rientrare tutto da zero usando le funzioni personalizzate di VimScript invece di regole integrate.
Ryan Jarvis,

Risposte:


1

A giudicare dal tuo commento sopra, vuoi usare solo cinoptionsper controllare il rientro delle parentesi quadre. Semplicemente non era possibile prima di 7.4.355 da quello che vedo nel codice sorgente . Fai clic su Incolpa in alto per vedere la versione taggata, ma ci vorrà un po 'per caricarsi.

Poiché sembra che cinoptionsfosse originariamente per C, C ++ e Java, si trattava solo di parentesi graffe e parentesi graffe perché le parentesi quadre vengono utilizzate per definire le dimensioni dell'array o accedere agli indici in quelle lingue - non inizializzandole.

Cosa controlla il rientro delle linee tra parentesi quadre e il posizionamento della parentesi quadra di chiusura?

Dopo 7.4.355, è l' Jopzione che controlla il rientro, ma nulla di specifico per le parentesi quadre. Da quello che ho ripassato nella fonte, l' Jopzione significa solo che dovrebbe essere considerata la sintassi JavaScript ( curbuf->b_ind_js). Cerca una riga precedente che termina con una virgola o una parentesi aperta con cui allinearsi. Nel tuo quarto esempio, la linea termina con a 1, quindi non aumenta il rientro.

Se la prima riga del quarto esempio termina con un [o ,(o entrambi [,) le righe successive aumentano il rientro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.