【问题标题】:Misspelled Ace Editor Options拼写错误的 Ace 编辑器选项
【发布时间】:2014-07-09 10:28:26
【问题描述】:

我已经为 PHP 实现了一个 Ace 编辑器设置(工作正常),但是当我尝试使用 Ace 的 API 设置其他选项时,我在控制台中收到警告。

这是用于初始化编辑器并尝试设置选项的代码;

ace.require("ace/ext/language_tools");
ace.require("ace/ext/emmet");

// PHP
var phpeditor = ace.edit("php_inc");
phpeditor.setTheme("ace/theme/dreamweaver");
phpeditor.getSession().setMode("ace/mode/php");
phpeditor.setOptions({
        enableSnippets: true,
        enableLiveAutoComplete: true,
        enableBasicAutocompletion: true,
        showPrintMargin: settings.showPrintMargin,
        useSoftTabs: false,
        fontSize: settings.fontSize,
        showInvisibles: settings.showInvisibles,
        behavioursEnabled: settings.behavioursEnabled,
        tabSize: settings.tabSize,
        useWrapMode: settings.useWrapMode,
        useWorker: settings.useWorker,
        setHighlightActiveLine: false,
        enableEmmet: true
    });

这是我收到的控制台警告;

misspelled option "enableSnippets" ace.js?ver=3.9.1:5207
misspelled option "enableLiveAutoComplete" ace.js?ver=3.9.1:5207
misspelled option "enableBasicAutocompletion" ace.js?ver=3.9.1:5207
misspelled option "setHighlightActiveLine" ace.js?ver=3.9.1:5207
misspelled option "enableEmmet" ace.js?ver=3.9.1:5207

任何帮助将不胜感激。

【问题讨论】:

  • 尝试设置会话选项?
  • 我试过了(即 phpeditor.getSession().setOptions({ ... }); ),但仍然收到相同的警告消息。不过感谢您的想法!
  • 所有会话选项都可以从编辑器中设置,除了拼写错误的选项都不是会话选项github.com/ajaxorg/ace/blob/v1.1.4/lib/ace/…

标签: javascript ace-editor


【解决方案1】:
  1. 您需要包含用于扩展的脚本文件,请参阅https://github.com/ajaxorg/ace-builds/blob/v1.1.4/demo/autocompletion.html#L28
  2. 选项名称是"enableLiveAutocompletion" 而不是"enableLiveAutoComplete" https://github.com/ajaxorg/ace/blob/v1.1.4/lib/ace/ext/language_tools.js#L186
  3. 选项名称中没有set,所以它应该是highlightActiveLine

您可以通过运行Object.keys(editor.$options)查看所有可用选项的列表

【讨论】:

  • 谢谢你 - 我认为 ace.require(...) 语句会涵盖 1,但显然不是。 2 实际上是我尝试过的,因为“enableLiveAutocompletion”一直出现拼写错误(我仍然收到“拼写错误的选项“enableLiveAutocompletion”-有什么想法吗?)
  • 可能您使用的是旧版ace,请尝试更新到最新版本。
  • 我已将 ace.js 文件更新为最新版本 - 我需要更新所有文件吗? (我不想,因为他们有自定义)
  • enableLiveAutocompletion 在 ext-language_tools 文件中定义。我不认为只更新一些文件是一个好主意,因为可能存在一些不兼容性,而且你会错过来自 ace 的新错误修复。你有什么样的修改?我要么向 ace core 提出拉取请求,要么在 github 上创建一个 fork 并使用 git merge/rebase 来保持我的更改同步。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
相关资源
最近更新 更多