2012-06-13 8 views
10

È possibile definire una sorta di funzione capitalize() o toLowerCase() durante la creazione di snippet di testo sublime 2?toLowerCase o in maiuscolo le funzioni per Sublime Text 2 Snippets

Ad esempio:

<snippet> 
<content><![CDATA[ 
<?php 
class ${1} extends Datamapper 
{ 
    var \$has_one = array(); 
    var \$has_many = array(); 
    var \$table = '${1}s'; 
    //constructor and other stuff next... 
} 
?> 
]]></content> 
<tabTrigger>dmm</tabTrigger> 
</snippet> 

Questo particolare frammento mi aiuta a creare DataMapper modelli ORM al volo. Quando digito dmm lo snippet viene attivato e il mio cursore viene posizionato in due aree contemporaneamente; il nome della classe & l'assegnazione a $table. Il primo cursore richiede maiuscole, mentre il secondo cursore no. Posso forzare il caso del frammento? Qualcosa come {1.toLowerCase}

Semplice esempio, ma posso pensare ad altre volte quando potrei usare questo.

risposta

16

È possibile utilizzare substitution e la Perl format string syntax

Ho testato questo codice:

<snippet> 
<content><![CDATA[ 
<?php 
class ${1} extends Datamapper 
{ 
    var \$has_one = array(); 
    var \$has_many = array(); 
    var \$table = '${1/(.+)/\L\1/g}s'; 
    //constructor and other stuff next... 
} 
?> 
]]></content> 
<tabTrigger>dmm</tabTrigger> 
</snippet> 

saluti, Armando

+0

eccellente, grazie Armando! –

+1

Sto provando a usare questo codice ma si blocca ST ... è tutto quello che c'è da fare? copiare e incollare dovrebbe funzionare? – Pier

+1

Ciao @Pier. L'ho provato con l'ultima versione di Sublime Text 2 ([build 2200] (http://www.sublimetext.com/dev)) creando un nuovo snippet (Strumenti> Nuovo frammento ...) e memorizzandolo nell'impostazione predefinita cartella (Pacchetti/Utente) – aanton