2012-06-13 43 views
10

¿Es posible definir algún tipo de función capitalize() o toLowerCase() al crear Sublime Text 2 Snippets?toLowerCase o capitalizar funciones para Sublime Text 2 Snippets

Por ejemplo:

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

Este fragmento particular, me ayuda a crear modelos de ORM DataMapper sobre la marcha. Cuando escribo dmm, el fragmento se activa y mi cursor se coloca en dos áreas al mismo tiempo; el nombre de la clase & la asignación a $table. El primer cursor requiere mayúsculas, mientras que el segundo cursor no. ¿Puedo forzar el caso del Snippet? Algo así como {1.toLowerCase}

Ejemplo simple, pero puedo pensar en otras ocasiones en que podría usar esto.

Respuesta

16

Puede utilizar substitution y la Perl format string syntax

He probado este código:

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

Saludos, Armando

+0

excelente, gracias a Armando! –

+1

Estoy tratando de usar este código pero falla ST ... ¿es eso todo lo que hay que hacer? copiar y pegar debería funcionar? – Pier

+1

Hola @Pier. Lo he probado con la última versión de Sublime Text 2 ([compilación 2200] (http://www.sublimetext.com/dev)) creando un nuevo fragmento (Herramientas> Nuevo fragmento ...) y guardándolo en el valor predeterminado carpeta (Paquetes/Usuario) – aanton

Cuestiones relacionadas