TextMate - TextMate

TextMate
TextmateIcon.png
TextMate screenshot.png
Schermata compagno di testo
Sviluppatore/i Allan Odgaard ( MacroMates ), Ciarán Walsh
Versione iniziale 5 ottobre 2004 ; 16 anni fa ( 2004-10-05 )
Rilascio stabile
2.0.19  Modificalo su Wikidata / 25 febbraio 2021 ; 6 mesi fa ( 25 febbraio 2021 )
Repository
Sistema operativo Mac OS
Tipo Editor del codice sorgente
Licenza
Sito web macromates .com

TextMate è un editor di testo GUI generico per macOS creato da Allan Odgaard. TextMate offre personalizzazioni dichiarative , schede per documenti aperti , macro registrabili , sezioni pieghevoli , frammenti , integrazione della shell e un sistema di bundle estensibile.

Storia

TextMate 1.0 è stato rilasciato il 5 ottobre 2004, dopo 5 mesi di sviluppo, seguito dalla versione 1.0.1 il 21 ottobre 2004. Il rilascio si concentrava sull'implementazione di un piccolo set di funzionalità e non aveva una finestra delle preferenze o una barra degli strumenti, non t integrava FTP e non aveva opzioni per la stampa. All'inizio era supportato solo un piccolo numero di linguaggi di programmazione, poiché erano stati creati solo pochi "pacchetti linguistici". Anche così, alcuni sviluppatori hanno trovato questa versione iniziale e incompleta di TextMate un gradito cambiamento in un mercato che era considerato stagnante dal dominio decennale di BBEdit .

TextMate 1.0.2 è uscito il 10 dicembre 2004. Nella serie di beta di TextMate 1.1 , TextMate ha acquisito caratteristiche: una finestra delle preferenze con una GUI per la creazione e la modifica dei temi; una barra di stato con un elenco di simboli; menu per la scelta della lingua e delle impostazioni delle schede e un "editor di pacchetti" per la modifica delle personalizzazioni specifiche della lingua. Il 6 gennaio 2006, Odgaard ha rilasciato TextMate 1.5, la prima "versione stabile" dalla 1.0.2. Le recensioni sono state positive, in contrasto con le versioni precedenti che erano state criticate.

TextMate ha continuato a svilupparsi fino alla metà del 2006. L'8 agosto 2006, TextMate ha ricevuto l'Apple Design Award per il miglior strumento di sviluppo, alla Worldwide Developers Conference di Apple a San Francisco , in California , tra "applausi rauchi". Nel febbraio 2006, il blog TextMate ha espresso intenzioni per direzioni future, inclusa una migliore gestione dei progetti, con un sistema plug-in per supportare file system remoti come FTP e sistemi di controllo delle revisioni come Subversion . Per tutto il 2007, l'applicazione principale è cambiata solo in minima parte, sebbene i suoi "pacchetti linguistici" abbiano continuato ad avanzare.

Nel giugno 2009, TextMate 2 è stato annunciato come completo per circa il 90%, ma con un elenco di funzionalità finali non divulgato. Un'alpha pubblica è stata resa disponibile per il download sul blog TextMate nel dicembre 2011, seguita da una release candidate alla fine del 2016. A settembre 2019 è stata rilasciata una versione finale.

Nell'agosto 2012, il codice sorgente di TextMate 2 è stato pubblicato su GitHub secondo i termini della GPL-3.0 o successiva , un tentativo dello sviluppatore di contrastare le restrizioni imposte da Apple sul software distribuito tramite il Mac App Store . Odgaard ha dichiarato che preferisce ricevere le patch come di pubblico dominio poiché ciò preserva la sua capacità di rilasciare una versione futura con una licenza più permissiva o di rendere disponibile una versione sul Mac App Store. Odgaard ha anche affermato di avere un amico che utilizza alcuni dei framework di TextMate in un progetto closed-source e che non è stato possibile incorporare patch rilasciate sotto GPL.

Caratteristiche

Ambiti gerarchici

TextMate consente agli utenti di creare modalità di evidenziazione della sintassi arbitrariamente complesse utilizzando una versione modificata del formato dell'elenco delle proprietà ASCII di Apple per definire le grammatiche del linguaggio. Queste grammatiche consentono di definire regole di nidificazione utilizzando la libreria di espressioni regolari Oniguruma e quindi di assegnare "scope" specifici: etichette composte che le identificano per la colorazione.

Pertanto, a ogni punto di un documento vengono assegnati uno o più ambiti, che definiscono dove si trova il punto nel documento, come dovrebbe essere colorato e quale dovrebbe essere il comportamento di TextMate in quel punto. Ad esempio, il titolo di uno dei link nella sezione "Link esterni" ha lo scopo:

text.html.mediawiki
    markup.list.mediawiki
        meta.link.inline.external.mediawiki
            string.other.link.title.external.mediawiki

Questo ambito ci dice che stiamo guardando un titolo di collegamento all'interno di un collegamento all'interno di un elenco all'interno di un documento MediaWiki.

I temi TextMate possono contrassegnare qualsiasi ambito, a vari livelli di precisione. Ad esempio, un tema può decidere di colorare ogni costante ( constant.*) in modo identico, mentre un altro può decidere che le costanti numeriche ( constant.numeric.*) debbano essere colorate in modo diverso rispetto ai caratteri di escape ( constant.character.escape.*). La sintassi dell'ambito gerarchico consente agli autori di linguaggi e agli autori di temi vari livelli di copertura, in modo che ciascuno possa scegliere di optare per semplicità o completezza, come desiderato.

Comandi

TextMate supporta comandi definiti e modificabili dall'utente che vengono interpretati da bash o dall'interprete specificato con shebang . I comandi possono essere inviati a molti tipi di input da TextMate (il documento corrente, il testo selezionato, la parola corrente, ecc.) oltre alle variabili di ambiente e il loro output può essere gestito in modo simile da TextMate in vari modi. Nella sua forma più semplice, un comando potrebbe ricevere il testo selezionato, trasformarlo e reinserirlo nel documento sostituendo la selezione. Altri comandi potrebbero semplicemente mostrare un suggerimento , creare un nuovo documento per il loro output o visualizzarlo come una pagina Web utilizzando il renderer HTML integrato di TextMate.

Molti bundle specifici della lingua come bash, PHP o Ruby contengono comandi per compilare e/o eseguire il documento o progetto corrente. In molti casi lo STDOUT e lo STDERR del processo del codice verranno visualizzati in una finestra in TextMate.

frammenti

Nella loro forma più semplice, i " snippet " di TextMate sono pezzi di testo che possono essere inseriti nel documento nella posizione corrente tramite un tasto sensibile al contesto o il completamento di una scheda. Gli snippet sono "intelligenti", supportano l'aggiornamento dinamico "tab stop", l'accesso alle variabili di ambiente e la capacità di eseguire script in linea. Questo permette comportamenti complicati. È possibile scorrere le tabulazioni utilizzando il tasto "tab" e supportano il testo predefinito, i menu a discesa, per completare gli elementi dello snippet. I risultati di questi punti di tabulazione possono essere modificati dinamicamente in un'altra porzione dello snippet, mentre l'utente inserisce un punto. È possibile utilizzare le variabili di ambiente TextMate, supportando le informazioni sull'ambito corrente, il numero di riga o il nome dell'autore, ecc. Gli snippet hanno anche la capacità di eseguire script di shell in linea.

gruppi

Le grammatiche, gli snippet, le macro, i comandi e i modelli del linguaggio TextMate possono essere raggruppati in "fascicoli" di funzionalità. Qualsiasi snippet, macro o comando può essere eseguito premendo una scorciatoia da tastiera, digitando una parola particolare e quindi premendo il tasto "tab" (i cosiddetti "trigger di tabulazione") o selezionando il comando da un menu. I trigger di schede sono particolarmente utili; la combinazione di tab trigger e snippet facilita notevolmente la codifica in lingue prolisse o in lingue con modelli digitati comunemente.

Frammenti, macro e comandi possono essere limitati a un ambito particolare, in modo che, ad esempio, il comando "chiudi tag html" non funzioni in uno script python, liberando quella scorciatoia da tastiera da utilizzare per qualcos'altro. Ciò consente ai singoli linguaggi e persino ai singoli ambiti di sovrascrivere i comandi incorporati come "Riformatta paragrafo" con versioni più specializzate. Anche i tasti speciali come il tasto Invio e la barra spaziatrice possono essere sovrascritti.

È disponibile un repository Subversion contenente molti più bundle di quelli forniti con il pacchetto dell'editor, per qualsiasi cosa, da Markdown ai blog al linguaggio assembly MIPS .

Gestione del progetto

Diversi documenti o cartelle possono essere aperti contemporaneamente in una finestra di progetto TextMate, che fornisce un cassetto lungo il lato che elenca i nomi dei file e delle cartelle e una serie di schede nella parte superiore. In TextMate 1.5, questo cassetto fornisce agli utenti un mezzo per organizzare file e cartelle da tutto il file system, oltre alla possibilità di creare cartelle virtuali per un'ulteriore organizzazione. Questa funzione è stata rimossa da TextMate 2 e sostituita con un normale browser di file . La ricerca e la sostituzione possono essere eseguite su un intero progetto e i comandi possono interagire con i file o le cartelle selezionati nel drawer. I bundle per CVS , Subversion, darcs e altri sistemi di controllo di revisione consentono a TextMate di gestire il codice con versione.

Altre caratteristiche

TextMate ha molte caratteristiche comuni agli editor di programmazione:

  • Le sezioni di codice pieghevole possono essere utilizzate per nascondere aree di un documento non attualmente in fase di modifica, per una visualizzazione più compatta della struttura del codice o per evitare distrazioni. Le sezioni da piegare possono essere selezionate manualmente, oppure la struttura del documento stesso può essere utilizzata per determinare le piegature.
  • La ricerca e la sostituzione basate su espressioni regolari velocizzano le complicate manipolazioni del testo. TextMate utilizza la libreria di espressioni regolari Oniguruma sviluppata da K. Kosako.
  • Un popup di funzione fornisce un elenco di sezioni o funzioni nel documento corrente.
  • La cronologia degli appunti consente agli utenti di tagliare molte sezioni di testo contemporaneamente e quindi incollarle.
  • La modalità di modifica delle colonne consente di aggiungere lo stesso testo a più righe di testo ed è molto utile per manipolare dati tabulari.
  • supporto "rmate" per l'avvio di textmate come editor per file da server remoti - molto migliorato rispetto alle soluzioni necessarie nella versione 1

Inoltre, TextMate supporta funzionalità per integrarsi bene con l'ambiente grafico OS X:

  • La cronologia grafica degli Appunti supporta l'incollaggio da copie precedenti, inclusi i lanci precedenti.
  • Trova e sostituisci supporta una cronologia grafica analoga.
  • La modifica è ulteriormente migliorata da più cursori (punti di inserimento) e dalla possibilità di estendere la selezione corrente a istanze aggiuntive creando più cursori.
  • Una finestra di visualizzazione HTML basata su WebKit mostra gli aggiornamenti in tempo reale mentre viene modificato un documento HTML.
  • Gli utenti di VoiceOver e Zoom possono utilizzare TextMate grazie al suo supporto di accessibilità.

Limitazioni

TextMate ha alcune limitazioni rispetto ad altri editor della sua classe:

  • Poiché TextMate non è strettamente associato a un linguaggio di scripting, come Emacs sta a Emacs Lisp , è impossibile per gli utenti avere il controllo completo sulla configurazione e sul comportamento del programma. Allan Odgaard ha spiegato i suoi pensieri sull'argomento in un'e-mail alla mailing list di TextMate, sostenendo soluzioni "consigliate dalla piattaforma".
  • Nessun validatore HTML integrato: poiché TextMate utilizza il validatore W3C per la convalida HTML, gli utenti devono disporre di una connessione di rete attiva per convalidare l'HTML utilizzando la funzionalità standard.
  • Nonostante il supporto sostanziale per macro, comandi e frammenti, TextMate non ha un supporto integrato per suggerimenti sul codice o completamento guidato del codice, quindi gli editor di testo che supportano queste funzionalità potrebbero rivelarsi una scelta migliore quando si impara la sintassi di un nuovo lingua o codifica in lingue verbose.
  • TextMate non è binario sicuro . È esplicitamente solo testo e non garantisce che i dati binari arbitrari in un file verranno conservati attraverso un ciclo di caricamento/salvataggio, indipendentemente dal fatto che i dati vengano modificati.

Premi

TextMate 1.5 ha vinto l' Apple Design Award come miglior strumento di sviluppo nel 2006.

Guarda anche

Riferimenti

Ulteriori letture

link esterno