2013-04-23 18 views
5

Sto scrivendo un file di sintassi vim. E ho trovato una variabile denominata main_syntax utilizzata in diversi file di sintassi esistenti. Ma non riesco a trovare alcuna documentazione che lo spieghi.Qual è il significato di main_syntax

Questo document descrive solo un'altra variabile, b:current_syntax, che è utilizzata per indicare a un altro script qual è la sintassi corrente.

Sembra che lo main_syntax abbia lo stesso significato. È una variabile legacy?

risposta

2

Alcuni script di sintassi supportano l'importazione in un'altra sintassi tramite :syntax include, ad es. javascript all'interno html.

La variabile main_syntax tiene traccia di quale sintassi è stata effettivamente impostata dall'utente/tipo di file; inclusi gli script di sintassi quindi omettere la cancellazione degli elementi di sintassi esistenti quando viene impostata questa variabile. (Mentre gli script di sintassi sono supposti per :finish senza alcuna azione se è impostato b:current_syntax.) Un'altra differenza con b:current_syntax è che main_syntax viene definito solo durante il processo di caricamento della sintassi effettivo, mentre l'altro persiste.

TL; DR: Se si supporta includendo/includi altre sintassi da soli, copiare il file di regole condizionale da una sintassi esistente, ad es. $VIMRUNTIME/syntax/html.vim; se no, puoi ignorarlo.

+0

Non riesco a capire se questa è una convenzione di un concetto supportato da Vim. Se quest'ultimo, come hai trovato i documenti su di esso? –

+0

@DanielKaplan: non esiste una documentazione esplicita, ma diverse sintassi fornite con Vim utilizzano 'main_syntax'. Poiché molti autori di sintassi basano la loro sintassi su quelli, è una convenzione forte e probabilmente anche supportata da Bram. Se pensi che questo dovrebbe essere documentato, si prega di inviare una patch doc! –