咖啡脚本是否有基于Web的代码完备API/IDE?
Ace Editor 和 CodeMirror 具有良好的语法高亮和基于 lint 的语法支持,我想添加到我的应用程序(Node-WebKit-REPL)的是代码完备支持
不幸的是,
CodeMirror 和 Ace 都没有专门为 coffeescript 提供的自动完成器,但它们都有一个 API 来添加完成器。
这里有一个简单的例子来展示如何为 ACE 做到这一点
var lang = require("ace/lib/lang")
var languageTools = require("ace/ext/language_tools")
editor = ace.edit("editor")
editor.setOptions({
enableBasicAutocompletion: true,
enableLiveAutocompletion: true, // this does not work very well atm
mode: "ace/mode/coffee"
})
var evalCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
var completions = [];
var props = Object.keys(window);
props.forEach(function(key){
completions.push({
value: key,
meta: 'window',
type: 'eval',
score: 1000
});
})
callback(null, completions)
},
getDocTooltip: function(item) {
if (item.type == 'eval' && !item.docHTML) {
var o = window[item.value]
var type = typeof o
item.docHTML = "<b>" + type + "</b><br>"
+ lang.escapeHTML(o + "");
}
}
}
editor.completers = [evalCompleter, languageTools.keyWordCompleter,
languageTools.snippetCompleter, languageTools.textCompleter
];
当然,在实际应用程序中,您将需要某种解析器来获取表达式
。http://sevin7676.github.io/Ace.Tern/demo.html 也很有用。