【问题标题】:Ace editor and autocomplete with custom functionsAce 编辑器和具有自定义功能的自动完成功能
【发布时间】:2015-03-07 22:51:10
【问题描述】:

我正在使用 ACE 编辑器,并且我使用下面的代码启用了自动完成功能,但这似乎只是通过文档中的任何单词给了我自动完成功能。这似乎很奇怪。我希望它更像 Visual Studio,因为它只列出函数/变量,而不是文档中存在的任何单词。自动完成与智能感知相同吗?我希望能够实时列出可能的函数名称及其参数,而不是文件中的函数,而是我从 Lua 中使用的外部库定义的函数。 ACE 能做到吗?

editor.setOptions({
                enableBasicAutocompletion: true,
                enableSnippets: true,
                enableLiveAutocompletion: false
            });

【问题讨论】:

    标签: ace-editor


    【解决方案1】:

    您可以设置自己的自动完成程序as defined here

    <html>
    <body>
      <div id="editor" style="height: 500px; width: 800px">Type in a word like "will" below and press ctrl+space or alt+space to get "rhyme completion"</div>
      <div id="commandline" style="position: absolute; bottom: 10px; height: 20px; width: 800px;"></div>
    </body>
      <script src="https://rawgithub.com/ajaxorg/ace-builds/master/src/ace.js" type="text/javascript" charset="utf-8"></script>
      <script src="https://rawgithub.com/ajaxorg/ace-builds/master/src/ext-language_tools.js" type="text/javascript" charset="utf-8"></script>
      <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
    <script>
        var langTools = ace.require("ace/ext/language_tools");
        var editor = ace.edit("editor");
        editor.setOptions({enableBasicAutocompletion: true, enableLiveAutocompletion: true});
        // uses http://rhymebrain.com/api.html
        var rhymeCompleter = {
            getCompletions: function(editor, session, pos, prefix, callback) {
                if (prefix.length === 0) { callback(null, []); return }
                $.getJSON(
                    "http://rhymebrain.com/talk?function=getRhymes&word=" + prefix,
                    function(wordList) {
                        // wordList like [{"word":"flow","freq":24,"score":300,"flags":"bc","syllables":"1"}]
                        callback(null, wordList.map(function(ea) {
                            return {name: ea.word, value: ea.word, score: ea.score, meta: "rhyme"}
                        }));
                    })
            }
        }
        langTools.addCompleter(rhymeCompleter);
    </script>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2013-09-26
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      相关资源
      最近更新 更多