autocomplete - Ace 编辑器自动补全

标签 autocomplete ace-editor

我正在 sql 模式下使用 ace 编辑器。我按照此链接启用自动完成功能:https://github.com/ajaxorg/ace/blob/master/demo/autocompletion.html .它通常运作良好。但是,我想进一步调整自动完成功能以满足我的进一步要求。这是愿望 list :

  • 我希望建议的sql关键字都是大写的。默认情况下,它们都是小写的;
  • 我发现在我输入一些单词时,我以前输入的单词会添加到建议词典中,这很好。我可以在编辑器中输入任何内容之前以编程方式在建议词典中添加更多单词吗?我需要这个的原因是我想将一些表名和字段名预加载到字典中。

  • 我是这个很棒的编辑器的新手。我希望得到一些关于如何调整自动完成功能的指导。谢谢。

    最佳答案

    有一个拉取请求为 sql server 模式添加更好的完成 https://github.com/ajaxorg/ace/pull/2460 , sql 模式可以用同样的方式处理。

    要添加更多单词,您需要实现自定义完成器,这很简单:

    <!DOCTYPE html>
    <html>
    <head>  
      <script src="http://ajaxorg.github.io/ace-builds/src/ace.js">
      </script> 
      <script src="http://ajaxorg.github.io/ace-builds/src/ext-language_tools.js">
      </script> 
      <style>
        #editor { position: absolute; top: 0; left: 0; right: 0; bottom: 0;}
      </style>
    </head>
    <body>
     <div id="editor">
    press ctrl+space</div> 
    </body>
    <script>
      editor = ace.edit("editor")
      editor.setOptions({
        // mode: "ace/mode/javascript",
        enableBasicAutocompletion: true
      });
      editor.completers.push({
        getCompletions: function(editor, session, pos, prefix, callback) {
          callback(null, [
            {value: "foo", score: 1000, meta: "custom"},
            {value: "bar", score: 1000, meta: "custom"}
          ]);
        }
      })
    </script>
    </html>


    另见 https://github.com/ajaxorg/ace/wiki/How-to-enable-Autocomplete-in-the-Ace-editor

    关于autocomplete - Ace 编辑器自动补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29753185/

    相关文章:

    go - 使用 Flyspell-prog-mode 和 go-autocomplete

    java - AutoCompleteTextView 未按预期工作

    jQuery 自动完成验证所选值

    ios - xcode 没有为我预填充

    javascript - webpack 中的动态 require 不起作用

    jquery - 无法将焦点设置在 Excel 加载项中的 ui-ace 上

    python - 使用Python快速生成自动补全建议

    javascript - 阻止 ace 编辑器将滚动条集中在光标上?

    javascript - 如何在 ACE 编辑器中突出显示每行中的第一个单词?

    javascript - 如果不需要,隐藏滚动条 - Ace 编辑器