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