【问题标题】:auto-completion in ace.js editorace.js 编辑器中的自动完成
【发布时间】:2013-11-15 11:31:31
【问题描述】:

我想知道是否可以在用户输入编辑器 ace.js 时启用自动完成功能。 目前在我的项目中,当用户键入时启用自动完成: ctrl + space 。 那么,是否可以在自动补全列表中添加一些关键字?

谢谢

【问题讨论】:

    标签: javascript autocomplete editor ace-editor


    【解决方案1】:

    用于触发自动完成use

    editor.commands.on("afterExec", function(e){
         if (e.command.name == "insertstring"&&/^[\w.]$/.test(e.args)) {
             editor.execCommand("startAutocomplete")
         }
    })
    

    要添加一些关键字,您可以在编辑器中添加另一个 completer 或覆盖模式上的 getCompletions 方法。

    【讨论】:

    • 谢谢!它在用户输入时显示自动完成,但当自动完成选项中只有一个匹配项时,它也会自动替换输入的单词。有办法避免这种情况吗?
    • @Proghero 你有没有找到你问题的答案?我有同样的问题。
    • 最新 ace 版本已内置支持此功能,请参阅 github.com/ajaxorg/ace/blob/4599dc6/lib/ace/ext/…
    • 当自动完成选项中只有一个匹配项时,我也遇到了自动替换键入的单词的问题...我可以将editor.completer.autoInsert = false; 放在哪里?我有最新版本的 ace,但它仍在自动完成。
    【解决方案2】:

    它已经内置了!查看我在editor.setOptions 下选择的选项:

        var langTools = ace.require("ace/ext/language_tools");
        var editor = ace.edit("editor");
    
        editor.setTheme("ace/theme/monokai");
        editor.getSession().setMode("ace/mode/yaml");
    
        editor.setOptions({
            enableBasicAutocompletion: true,
            enableSnippets: true,
            enableLiveAutocompletion: true
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多