Assegnare estensioni personalizzate all'evidenziazione della sintassi di una lingua in Notepad ++


280

Nella versione corrente di Notepad ++ l'apertura di file .sql comporta l'applicazione di evidenziazione della sintassi SQL ad esso. Vorrei che Notepad ++ facesse lo stesso anche per altre estensioni, c'è qualche impostazione in cui posso definirlo?


Non già? Dovrebbe farlo per impostazione predefinita.
D'Arvit,

2
Lo fa per i file .sql, non per altri file
Sathyajith Bhat

4
Vorrei che Notepad ++ abbia appena ricordato la lingua selezionata dal menu per ciascun file o che mi sia offerto di aggiungere l'estensione al configuratore di stile di quella lingua la seconda volta che hai associato l'estensione a una lingua.
Matthew Lock,

Nota che puoi anche modificare i colori della lingua della tua estensione tramite il menu Lingua / Definisci la tua lingua ...
cancella l'

Risposte:


347

Quando apri un file in notepad ++, tenterà di caricare l'evidenziazione della sintassi per i contenuti in base all'estensione del file.

Se si utilizza l'estensione personalizzata per una delle lingue esistenti, è possibile aggiungere l'estensione personalizzata in Impostazioni -> Styler Configurator. Seleziona la lingua e aggiungi l'estensione nella casella di modifica "Estensione utente". Per aggiungere più estensioni, separale usando Space.

È quindi necessario riaprire il file per vedere l'evidenziazione della sintassi applicata.

Puoi anche cambiare lo stile di evidenziazione della sintassi selezionando una lingua diversa dal menu della lingua.


Ho provato questo, ma assegna solo a 1 estensione, voglio assegnare più estensioni.
Sathyajith Bhat

24
puoi aggiungere più estensioni separandole con spazio, aggiunte nel mio post
T. Kaltnekar,

20
Notare che apportare questa modifica non avrà effetto sui file attualmente aperti in Notepad ++. Inoltre, la chiusura e la riapertura di Notepad ++ non influiranno sui file che rimangono aperti tra le sessioni. I singoli file devono essere chiusi e riaperti affinché l'effetto sia visibile.
mwolfe02,

Questo metodo inoltre non funziona per le lingue definite dall'utente. Per quelli, vedi la risposta qui sotto, ma invece di langs.xml, modifica l'utenteDefineLang.xml
Chase Sandmann

2
Questo metodo sembra funzionare solo quando si apre Notepad ++ come amministratore. Vedi questo problema: github.com/notepad-plus-plus/notepad-plus-plus/issues/67 Inoltre sembra persistere le modifiche nei file di programma (ecco perché il problema delle autorizzazioni) in C: \ Programmi (x86) \ Blocco note ++ \ themes \ SelectedTheme.xml che significa che questa impostazione non viene utilizzata quando si cambia tema.
Daniel Bogdan,

67

Trova il file langs.xml (di solito in C: \ Users [nome utente] \ AppData \ Roaming \ Notepad ++), aprilo con Notepad ++, trova la riga che inizia con <Language name="sql" ext="sql"e aggiungi le estensioni che desideri nel campo ext , separandole con un spazio.

Per fare ciò per una lingua definita dall'utente, cerca invece userDefineLang.xml e modifica ext="".

Se hai installato notepad ++ in modalità "portatile", allora langs.xml e userDefineLangs.xml saranno direttamente nella cartella in cui si trova notepad ++.


6
Anche questo approccio funziona bene, ma l'approccio di T. Kaltnekar è un po 'più intuitivo, grazie!
Sathyajith Bhat

È l'unico modo in cui sapevo come :).
alex,

2
Bello, preferisco questo approccio, ho molte estensioni personalizzate ed è più facile copiarle e incollarle in questo modo.
James,

2
Questo metodo ha funzionato per me. Non capisco perché l'aggiunta dell'estensione con la GUI non funzioni. "C: \ users (utente) \ appdata \ roaming \ notepad ++ \ langs.xml"
jimueller,

Non ho installato Notepadd ++, solo decompresso, quindi il lang.xmlfile è nella directory dell'applicazione ;-)
Betlista,

0

Nel caso in cui uno stia utilizzando i file di sessione di Notepad ++ (li ho nominati *.nppxml), è possibile modificarli e cambiare l' <File lang="...">attributo, ad es

<File ... lang="Normal Text" ... filename="httpd.conf"
<File ... lang="Normal Text" ... filename="some.log"

per:

<File ... lang="Powershell" ... filename="httpd.conf"
<File ... lang="log" ... filename="some.log"

per ottenere *.logimmediatamente l'evidenziazione della sintassi predefinita (o definita dall'utente come nel mio caso con i file) senza riaprire ogni singolo file ecc.

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.