【问题标题】:Ace editor auto completionAce 编辑器自动完成
【发布时间】:2015-04-20 16:20:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: autocomplete ace-editor


    【解决方案1】:

    有一个拉取请求来为 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

    【讨论】:

    • 谢谢,内容非常丰富。我试图为editor.completers 查找一些文档。但是官网好像没有这方面的信息。有什么办法可以改变现有完成者的行为吗?比如让selectfromwhere变成SELECTFROMWHERE
    • 查看我链接的拉取请求,您可以对 sql 模式进行类似的更改
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多