javascript - tipos - ¿Cómo puedo ver el contorno en eclipse cuando uso el patrón del módulo revelador?
recomendaciones para ver un eclipse lunar (4)
Añadir:
/**
* @memberOf myNamespace
*/
antes de cada definición de función para restaurar la jerarquía.
Encontrarás más etiquetas interesantes para documentar tu código aquí:
Cómo introduje JsDoc en un proyecto de JavaScript y encontré mi Esquema de Eclipse
Actualmente estoy refactorizando el código Javascript que tenemos y, entre otras cosas, lo he cambiado para utilizar el patrón de módulo revelador. El código se ve mucho más ordenado y funciona bien, pero ya no puedo ver las funciones en la vista de esquema. Veo la var del espacio de nombres de nivel superior como una var, pero no puede expandirla para ver las funciones dentro.
Digamos que el código usado para verse así:
function myFunc1() {}
function myFunc2() {}
En este caso, verá ambas funciones en la vista de esquema. Pero si lo cambias a esto:
var myNamespace = function()
{
function myFunc1() {}
function myFunc2() {}
return {
name: "myNamespace",
myFunc1: myFunc1,
myFunc2: myFunc2
}
}();
Entonces la vista de esquema solo te muestra la var. He intentado buscar pero no puedo encontrar una vista que realmente me muestre la jerarquía correctamente. ¿Alguien sabe de una manera de ver esto o es un caso de eclipse que no puede hacer esto?
Estoy trabajando con Eclipse / Kepler. Usando los consejos de arriba, logré obtener la vista de esquema. Pero las propuestas (Ctrl-espacio) no funcionaron. Algunas fn eran visibles, otras no. No hay patrón para detectar.
Después de leer http://usejsdoc.org/#JSDoc3_Tag_Dictionary , reemplacé todos los @memberOf por @memberof y ahora todo funciona como se esperaba (hasta que surja el siguiente problema ...)
No mostrar myFunc1 (), etc. en el esquema parece ser un error que está marcado como corregido en 3.2. Sin embargo, no está fijado en 4.2. Sin duda, es un gran problema cuando se trata de archivos muy grandes de cientos de funciones, y solo el nombre var aparece en el esquema. Rezo por que se arregle.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=236202
https://bugs.eclipse.org/bugs/show_bug.cgi?id=281374#c1
/ ** * @memberOf myNamespace * / No funcionó para mí. Cuando agrego esto arriba de myFunc1 (), no se muestra en el esquema, incluso si cierro y abro el archivo.
Curiosamente, 4 de mis 20 o más funciones aparecen en el esquema, pero no hay diferencia entre las que funcionan y las que no, excepto las que funcionan, todas tienen esto.xxx en ellas (pero si agrego esto .dummy; a las funciones invisibles no ayuda)
Este semi funciona: myNameSpace.prototype = {}; myNameSpace;
Pero entonces no puedes llamar a sus funciones por lo tanto: myNameSpace.myFunc1 ();
Una forma es llamarlo como abajo. Defínelo como es, pero no lo ejecutes por ti mismo. Asegúrese de que el prototipo sea un objeto vacío y luego intente llamarlo. Funciona de la misma manera, pero restaurará el esquema y no necesita agregar comentarios al frente de cada función.
var myNamespace = (function()
{
function myFunc1() {}
function myFunc2() {}
return {
name: "myNamespace",
myFunc1: myFunc1,
myFunc2: myFunc2
}
});
myNamespace.prototype = {};
myNamespace();