code-snippets - style - snippets atom
Editor Atom: mĂșltiples fragmentos (5)
Esta es una pregunta tan simple pero no puedo encontrar ninguna documentación además del archivo Léame.
¿Cómo puedo tener varios fragmentos personalizados en Atom Editior:
Por ejemplo, tengo esto en mi snippets.cson ahora mismo
''.source.js'':
''Normal Comment Block'':
''prefix'': ''cmm''
''body'': """
//**********************************************************************************
//
//**********************************************************************************
"""
''.source.js'':
''Dashed Comment Block'':
''prefix'': ''c--''
''body'': """
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
"""
Pero cmm no funciona, solo puedo usar el último elemento en snippets.cson. ¿Alguna idea sobre cómo solucionar este problema? Tengo una docena de fragmentos diferentes que me gustaría usar, pero no puedo averiguar cómo incluirlos correctamente.
Además de la explicación de @ Lee, aquí hay un ejemplo si no va a configurar varios fragmentos de código organizados por lenguaje de programación:
# HTML Snippets
''.text.html'':
''HTML Comment'':
''prefix'': ''<!''
''body'': ''<!-- $1 -->''
# Sass Snippets
''.source.scss'':
''Section Comment'':
''prefix'': ''sc''
''body'': """
/*=================================================
$1
=================================================== */
"""
''Sub Section Comment'':
''prefix'': ''ssc''
''body'': """
/* $1
=================================================== */
"""
# JavaScript Snippets
''.source.js'':
''jQuery - Bind Event'':
''prefix'': ''bind''
''body'': """
$( $1 ).on( ''$2'', ''$3'', function( $4 ) {
$5
});
"""
En este ejemplo, incluí HTML, Sass y Javascript, pero podrías incluir otros como CSS, ...
Espero que esto haya sido útil.
Comenzando el siguiente fragmento con una coma seguida de una nueva línea, le doy la misma estructura que la primera que funcionó para mí.
''.source.php'':
''var dump'':
''prefix'': ''vd''
''body'': """
echo "<pre>";
var_dump($);
echo "</pre>";
""",
''this->db'':
''prefix'': ''trans''
''body'': """
$this->db->trans_start();
""",
''comment block'':
''prefix'': ''cm''
''body'': """
/****************************************
*
*
****************************************/
"""
El formato del archivo de configuración se llama CSON, Notación de Objetos CoffeeScript. Al igual que JSON (Notación de objetos de JavaScript), es un formato de texto para describir objetos simples. Debido a lo cual, cuando especifica una clave dos veces, como .source.js
en su ejemplo, la segunda instancia sobrescribe la primera. Si simplemente tiene un .source.js
todo funcionará bien:
''.source.js'':
''Normal Comment Block'':
''prefix'': ''cmm''
''body'': """
//**********************************************************************************
// $1
//**********************************************************************************
$0
"""
''Dashed Comment Block'':
''prefix'': ''c--''
''body'': """
//----------------------------------------------------------------------------------
// $1
//----------------------------------------------------------------------------------
$0
"""
Además, me tomé la libertad de agregar tabulaciones a tus fragmentos para que cuando expandas el fragmento, tu cursor caiga primero dentro del comentario. Puede ingresar su comentario y luego presionar TAB para salir y continuar.
Encontré un error extraño con múltiples fragmentos en Atom. Espero que esta respuesta pueda ayudar a alguien con el mismo problema (estoy usando la versión mac de Atom). Así que fui a agregar un nuevo fragmento de código al archivo snippets.cson, copié el fragmento anterior y lo pegué en una plantilla como esta y ''.source.php'': ''Debug'': ''prefix'': ''prepr'' ''body'': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ ''Debug'': ''prefix'': ''prepr'' ''body'': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """
, a pesar de que seguían siendo los mismos ''.source.php'': ''Debug'': ''prefix'': ''prepr'' ''body'': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ ''Debug'': ''prefix'': ''prepr'' ''body'': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """
Después de guardar esto edité el segundo para tiene un título y prefijo y código de cuerpo diferentes ''.source.php'': ''Debug'': ''prefix'': ''prepr'' ''body'': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ ''different'': ''prefix'': ''different'' ''body'': """ echo "different"; """
He guardado nuevamente después de haber editado el segundo fragmento. Esta vez, la pestaña de expansión para el segundo fragmento no funcionaría, sin embargo, el primero todavía funcionó. Después de mucho bromear con eso, asegurándome de que tenía la sintaxis correcta, probé una corazonada que quizás porque guardé con dos fragmentos duplicados que se metió con la salida de cson de alguna manera. Luego borré el segundo fragmento, luego lo guardé con solo el primero allí, luego duplicé el primero, luego lo cambié, luego lo guardé. Después de todo, ambos fragmentos funcionaban normalmente.
He estado usando varios fragmentos de código por un tiempo y nunca me he encontrado con este problema hasta ahora. Tan extraño pero ahí está.
Tuve el mismo problema, aquí está la solución:
''.source.js'':
''First function'':
''prefix'': ''first''
''body'': """
function $1() {
var overall = true;
if (overall)
{
var result = {};
result.test1 = "";
return test2(result);
}
return catched("");
} """,
''Next function'':
''prefix'': ''next''
''body'': """
function $1(result) {
var overall = true;
if (overall)
{
result.test1 = "";
return test2(result);
}
return catched("");
} """,
''Next next function'':
''prefix'': ''pz''
''body'': """
function $1(result) {
var overall = true;
if (overall)
{
result.test1 = "";
return test2(result);
}
return catched("");
} """
Tenga en cuenta que tiene que hacer un par de cosas:
- Agregue una coma (,) después de cada "" ".
- Comience la siguiente definición en la misma línea de inicio de la definición previa! Realmente no entendí por qué funciona así ... pero ... ese es el caso.
- Utilice ''.source.PROGRAM LANGUAGE'': solo una vez por idioma.
Inicio ayuda :)