CoffeeScript 代码完成 Web IDE



咖啡脚本是否有基于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 也很有用。

相关内容

  • 没有找到相关文章

最新更新