繁体   English   中英

代码完成 - Aptana Eclipse插件

[英]Code Completion — Aptana Eclipse Plugin

我在过去几周一直在进行javascript开发,并尝试过JSDT和Aptana来协助代码完成。 JSDT并不是很好,但我确实有更多的运气与Aptana(用作eclipse插件,而不是独立产品)。 我遇到的问题是,当我创建javascript类时,我无法使代码完成工作。 例如,如果我使用以下代码,则代码完成不起作用:

var foo = new function(value){
   this.myMethod= function(){
   }
}

我还验证了以下内容不起作用:

function foo(value){
   this.myMethod= function(){
   }
}

我发现使用JSON样式确实有效:

var foo = {
    myMethod: function(){

    }
}

有谁知道为什么Aptana适用于最后一种风格,但不是第一种? 使用JSON样式对我来说不起作用,因为我必须有相关类的单独实例。

此外,我不是很成功地使代码完成跨文件工作。 例如,如果我在javascript目录中有3个文件,那么我通常无法让Aptana在其他两个类中获取JSON样式标记。 这个DID在某一点上工作(对于我创建的前两个类),但从那时起,每当我添加新类时,它们都不会被拾取。

非常感谢你的帮助。

杰里米


我已经确定以下工作:

/**
* The foo function
*/
function foo() { 
}

/**
* The bar function
* @param {Object} a Object a
 * @param {Object} b Object b
 */
function bar(a, b){
};

foo.prototype.b = bar;

var x = new foo();
x.b

在上面的示例中,关键是您使用原型注册方法。 我也试过以下,但它没有用。

/**
* The foo function
*/
var foo = new function() { 
}

/**
* The bar function
* @param {Object} a Object a
 * @param {Object} b Object b
 */
function bar(a, b){
};

foo.prototype.b = bar;

var x = new foo();
x.b

任何想法有什么区别? 第二个是javascript中的有效类吗?

希望我能帮助回答有关Aptana代码完成行为的所有问题。 为了鼓励Aptana的代码完成合作,我一直在使用这种方法:

var foo = function(){
}
foo.prototype.a = "a"
foo.prototype.b = function(){ alert(this.a) }

你说

此外,我不是很成功地使代码完成跨文件工作。

但到目前为止我好运。 但是,我发现如果我有f = new foo()但将其更改为f = new bar(),代码完成会显示普通ol'对象的属性,而不是foo或bar。 重命名变量(b =来自f = new foo()的新条形码())或重新启动编辑器似乎有所帮助。

任何想法有什么区别? 第二个是javascript中的有效类吗?

关于“new function()”, 在JavaScript中使用小写“f”的`new function()` ,类似于

var foo = new function(){ ... }

代替

var foo = { ... } // JSON style

要么

var foo = function(){ ... }

是实现属性私有访问的变通方法的一部分。 请记住,JS中没有“类”,而是对象。 一切都是对象。

有谁知道为什么Aptana适用于最后[JSON]风格,但不是第一个?

JSON样式声明实际上创建了一个名为foo的Object实例,因此Aptana没有问题查找它。 正如您所提到的,使用函数允许单独的实例,但Aptana似乎不会跟踪在找到原型之前声明为函数的事物的属性。 我的理由是,原型触发Aptana的代码完成,因为自定义对象的每个实例都将指定所有属性。 如果没有原型,必须为每个实例重新定义属性(通常在构造函数中完成,但是在我最顶层的代码块中注意我的构造函数是空的,因为我使用prototype来定义自定义对象)。 这个链接在这方面解释了有关原型的更多信息http://www.phpied.com/3-ways-to-define-a-javascript-class/

Aptana中的默认JavaScript编辑器是什么(在Windows>首选项>文件关联> * .js下)? 我使用Aptana JS编辑器而不是JavaScript编辑器(默认安装)。 请注意,每个项目的这些设置可能不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM