我想擴展gnu c的CDT語言插件,在此基礎上創建某種新語言。Eclipse CDT擴展構建附加語言
新語言在編輯器中應該有不同的視覺外觀。如果在前面有一個特殊的預處理器指令(如註釋),我想用灰色將方法主體着色。
有沒有人知道在哪裏擴展GCC語言來進行這種修改?
EDIT1:
如實例我想要specialFunction的方法體的顏色是灰色的,作爲原因的示例註釋的 - >#annotation
#annotation
int specialFunction(){
return 1;
}
編輯2:
我到目前爲止所嘗試的是建立一個「擴展語言」。計劃是突出預處理器的位置,並保存位置,以便下面的方法將被着色。我設法讓預處理器關鍵字變成了彩色,但不知道如何處理方法體顏色。被着色
public class OwnKeyWords extends GCCLanguage implements ICLanguageKeywords
@Override
public String[] getPreprocessorKeywords() {
//System.out.println("Called keywords" + timesPre++);
return new String[]{
"hide",
"show"
};
}
實施例:
#hide
int specialFunction(){
return 1;
}
在上述 「隱藏」 的例子將被突出顯示。
EDIT3:
我試圖執行ISemanticHighlighter並嘗試了一些方法來突出我的代碼:
CVariable
CFunction
ObjectStyleMacro
...
但是他們的非哪裏適合與突出的方法體一個預處理器指令或其他任何頂層的指令。
同樣的音符ISemanticHighlighter:
* NOTE: Implementors are not allowed to keep a reference on the token or on any object retrieved from the
* token.
不是我想要達到的目標,因爲我想保持參照突出的對象對於今後的業務。
也許org.eclipse.cdt.ui.text.folding.DefaultCFoldingStructureProvider也是一個選項,在那裏我不能着色儀器,我可以隱藏它。
這是一個很廣泛的問題,按照目前的要求,所以我不能提供一個完整的答案。看一看雖然在http://help.eclipse.org/mars/topic/org.eclipse.cdt.doc.isv/reference/extension-points/org_eclipse_cdt_core_language.html?cp=14_1_1_7和擴展點是如何在使用CDT自己定義GCC語言變體或其他類似的語言,如Qt。 –
@JonahGraham進一步指定了這個問題 –
「這不是我想要實現的目標,因爲我想繼續參考高亮顯示的對象以供日後操作。」 - 在任何方面聽起來都不對,您通常在CDT的所有API中都不允許保留對AST節點的引用。 –