¿Conoces algún IDE que pueda autocompletar este tipo de código?Oo código de JavaScript completado en cualquier IDE
que tienen un generador de clase de JavaScript aquí:
(function() {
var core = {
bind : function(method, scope) {
if (!(method instanceof Function))
throw new TypeError("Function needed as method.");
if (typeof (scope) != "object")
throw new TypeError("Object needed as scope.");
return function() {
return method.apply(scope, arguments);
};
},
require : function(source) {
if (typeof (source) != "object" || !source)
throw new TypeError("Object needed as source.");
for (var property in source)
if (source.hasOwnProperty(property) && !this.prototype.hasOwnProperty(property))
this.prototype[property] = source[property];
},
override : function(source) {
if (typeof (source) != "object" || !source)
throw new TypeError("Object needed as source.");
for (var property in source)
if (source.hasOwnProperty(property))
this.prototype[property] = source[property];
},
extend : function(source) {
var superClass = this;
var newClass = source.hasOwnProperty("constructor") ? source.constructor : function() {
superClass.apply(this, arguments);
};
newClass.superClass = superClass;
var superClone = function() {
};
superClone.prototype = superClass.prototype;
newClass.prototype = new superClone();
newClass.prototype.constructor = newClass;
if (source)
newClass.override(source);
return newClass;
}
};
core.require.call(Function, core);
Function.create = function (source){
var newClass = source.hasOwnProperty("constructor") ? source.constructor : function() {};
newClass.override(source);
return newClass;
};
})();
necesito finalización de código (Escribe en los comentarios) para estas clases de ejemplo:
//Function.prototype: bind, require, override, extend
//Function.create
var A = Function.create({ //offer Function.[create]
test: function(){
console.log("a");
}
});
//A is a Function instance
//A.prototype: test
var B = A.extend({ //offer A.[extend]
test: function(){
console.log("b");
},
test2: function(){
console.log("b2");
}
});
//B is a Function instance
//B.prototype inherits from A.prototype
//B.prototype.test overrides A.prototype.test
var F = Function.create({ //offer Function.[create]
getA: function(){
return new A();
},
getB: function(){
return new B();
}
});
//F is a Function instance
//F.prototype getA, getB returns A and B instances
var f = new F(); //offer [F]
//f inherits from F.prototype
var a = f.getA(); //offer f.[getA]
//a inherits from A.prototype
var b = f.getB(); //offer f.[getB]
//b inhertis from B.prototype
a.test(); //offer a.[test]
b.test(); //offer b.[test]
b.test2(); //offer b.[test2]
Así que debo dejar que el IDE de alguna manera sabe, que estas funciones existen en el Function.prototype, y estas funciones crean instancias Function y escriben en el prototipo de esas instancias. Esto es posible solo con la indexación manual de mi código, como jsdoc, pero eso no es suficiente para describir, por ejemplo, la herencia. Así que necesito un IDE que pueda manejar al menos la herencia de js, y para el cual puedo escribir un complemento que crea esta indexación automáticamente. (Tal vez el complemento también podría manejar la herencia, no sé cómo funciona exactamente esa indexación ...)
¿Qué IDE es capaz de eso (y cómo)?
¿qué quieres el IDE para autocompletar ? muestre un ejemplo. – Baz1nga
Los valores de retorno de Function.create, ParentClass.extend, y las instancias ... Ofc algo como javadoc es aceptable para mí. Lo mejor sería si pudiera anular el complemento de finalización de código para interpretar estas funciones especiales ... – inf3rno
IntelliJ de JetBrains es el mejor IDE del mercado, sin dudas. No estoy seguro de entender su requisito, pero hace un trabajo hermoso con JavaScript. – duffymo