咖啡脚本是否有一个基于web的完整的API/IDE?
Ace编辑器和CodeMirror具有良好的语法高亮显示和基于lint的语法支持,我想在我的应用程序(节点-WebKit-REPL)中添加的是代码完整的支持。
发布于 2014-12-16 14:59:24
不幸的是,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
];
当然,在实际的应用程序中,您需要某种解析器来获得表达式。评估
https://stackoverflow.com/questions/27457112
复制