2012-06-13 10 views
10

Ist es möglich, eine Art von capitalize() oder toLowerCase() Funktion beim Erstellen von Sublime Text 2 Snippets zu definieren?toLowerCase oder Großbuchstaben Funktionen für Sublime Text 2 Snippets

Zum Beispiel:

<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> 

Dieser besondere Schnipsel hilft mir DataMapper ORM-Modelle on the fly zu erstellen. Wenn ich dmm tippe, wird das Snippet gefeuert und mein Cursor wird in zwei Bereichen gleichzeitig platziert; der Klassenname & die Zuordnung zu $table. Der erste Cursor erfordert eine Großschreibung, während der zweite Cursor dies nicht tun sollte. Kann ich den Fall des Snippets erzwingen? So etwas wie {1.toLowerCase}

Einfaches Beispiel, aber ich kann an andere Zeiten denken, wenn ich das verwenden könnte.

Antwort

16

Sie können substitution und die Perl format string syntax

ich diesen Code getestet verwenden:

<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> 

Grüße, Armando

+0

Ausgezeichnet, danke Armando! –

+1

Ich versuche, diesen Code zu verwenden, aber es stürzt ST ... ist das alles da ist es? Kopieren und Einfügen sollte funktionieren? – Pier

+1

Hallo @Pier. Ich habe es mit der neuesten Version von Sublime Text 2 ([build 2200] (http://www.limetext.com/dev)) getestet und ein neues Snippet erstellt (Tools> New Snippet ...) und es im Standard gespeichert Ordner (Pakete/Benutzer) – aanton

Verwandte Themen