risorse | scite

SciTE

SciTE è un potente editor di testo libero, scritto da Neil Hodgson. Lo utilizzo regolarmente dal 2004.

Personalizzazioni

SciTE è un editor altamente personalizzabile; qui è disponibile una configurazione per la versione 3.5.3. Le personalizzazioni riguardano in particolare:

Le personalizzazioni possono essere attivate copiando il contenuto di questa cartella nella cartella utente (quella indicata dalla variabile d'ambiente %USERPROFILE%, che di norma corrisponde a C:\Documents and settings\nome-utente in Windows 2000/XP, C:\Users\nome-utente in Windows Vista e successivi, nella cartella /home/nome-utente in Linux), preservando la struttura delle sotto-cartelle.

Zenburn

Trovo molto rilassante lo schema di colori Zenburn sviluppato da Jani Nurminen per Vim. Ho quindi deciso di configurare SciTE in modo che esibisse una livrea simile, ed il risultato è SciTE.theme.zenburn.properties. Il file va copiato nella cartella utente e incluso nel file SciTEUser.properties tramite la direttiva import SciTE.theme.zenburn. Il file SciTEUser.properties, nella sua parte terminale, contiene le direttive per la colorazione di alcuni linguaggi, tra cui C/C++, Python, HTML/XML e SQL.

L'inclusione del file di definizione dello schema dei colori produce, come effetto collaterale, la definizione della variabile globale USE_CUSTOM_COLOURS.

Twilight

Uno schema di colori leggermente più contrastato che a volte uso in alternativa a Zenburn è Twilight; mi sono ispirato in partcolare alla versione sviluppata per Vim da Yoshimasa Niwa. Per abilitare il tema Twilight, copiare il file SciTE.theme.twilight.properties nella cartella utente, quindi sostituire la direttiva import SciTE.theme.zenburn con import SciTE.theme.tiwlight nel file SciTEUser.properties.

Solarized

Solarized è una palette di colori sviluppada da Ethan Schoonover appositamente per la lettura su terminale. Per abilitare il tema, copiare il file SciTE.theme.solarized.properties nella cartella utente e impostare la direttiva import SciTE.theme.solarized nel file SciTEUser.properties. La variabile USE_LIGHT_BACKGROUND consente di passare dalla modalità a sfondo chiaro (1) a quello scuro (0).

Snippets

Mitchell Foral ha sviluppato un interessante sistema di snippets simile a quello disponibile in TextMate. Poiché tuttavia la sua implementazione ricorre a Ruby, io ne ho predisposta una basata su Python, che gli ho sottoposto e che lui ha reso disponibile per il download nell'area Files del gruppo Google SciTE-tools.

Dal sito di Mitchell:

Gli snippet sono memorizzati all'interno di una tabella. Uno scope è un indice numerico che identifica una classe di snippet che si applica ad un particolare lexer. Le stringhe che indicizzano le tabelle rappresentano il testo che attiva lo snippet. All'atto dell'attivazione dello snippet, tale stringa viene sostituita dallo snippet. Per esempio:
	snippets = {
	  file = "$(FileNameExt)",
	  [SCLEX_RUBY] = {
		['def'] = "def ${1:initialize}(${2:})\n  ${0}\nend"
		[SCE_RB_STRING] = {
		  ['c'] = "#{${0}}"
		}
	  }
	}
Gli snippet privi di scope sono globali, gli snippet SCLEX_RUBY sono globali all'interno di un buffer contenente un file Ruby, mentre uno snippet SCLEX_RUBY SCE_RB_STRING può essere attivato all'interno di un buffer Ruby solo se il cursore si trova all'interno di una stringa. La sintassi prevede:

Le peculiarità dei due linguaggi mi ha costretto a modificare leggermente la sintassi per la definizione delle espressioni regolari utilizzabili negli snippet. In particolare, mentre in Ruby i gruppi sono identificati da un carattere dollaro seguito da un intero, e la numerazione inizia da 0, in Python i gruppi sono identificati da un back-slash seguito da un intero, a partire 1. Così, per esempio, la trasformazione ${1/text/other $0/} va così riscritta: ${1/(text)/other \\1/}.

Sono disponibili gli snippet per HTML sviluppati da Jani stesso, adattati per Python, oltre ad alcuni snippet sperimentali per C++.

Pagina modificata il 15/04/2015