javascript - Ace 代码编辑器动态设置语言

标签 javascript jquery syntax-highlighting ace-editor

<分区>

我正在尝试通过下拉菜单来选择语言来实现 Ace 代码编辑器。我的下拉菜单有一个 id 模式。我已经让编辑器正常工作,但我无法像我希望的那样使用下拉菜单更改语言。我当前的代码是

var editor = ace.edit("code");
var textarea = $('textarea[name="code"]').hide();
editor.setTheme("ace/theme/textmate");
editor.getSession().setMode("ace/mode/sql");
editor.getSession().setValue(textarea.val());
editor.getSession().on('change', function(){
textarea.val(editor.getSession().getValue());
});

$('#mode').on('change', function(){
var newMode = $("mode").val();
editor.session().setMode({
    path: "ace/mode/" + newMode,
    v: Date.now()});
});

如上所述,这成功启动了编辑器,但是我无法从初始语言 SQL 更改语言。我遇到了这个问题 Dynamically update syntax highlighting mode rules for the Ace Editor 这就是为什么我包括

v: Date.now()

但仍然没有运气。

最佳答案

你在 editor.session().setMode({

使用 editor.session.setMode("ace/mode/"+ newMode) 代替它。

v: Date.now() 需要禁用缓存,您很可能不需要它。

关于javascript - Ace 代码编辑器动态设置语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278238/

相关文章:

javascript - 如何在悬停 <a> 标签时弹出一个 div?

javascript - 手动触发 ember.js 中的属性更改

jquery - 使用 Bootstrap 和 Aurelia 附加的井的随机移动

javascript - RxJS 中以前的订阅会发生什么?

javascript - Ember 将操作从一个组件发送到另一组件

jquery - 使用 multiscroll.js。到达幻灯片末尾后想要反转箭头

emacs - 避免字体锁定干扰评论内

visual-studio - 为什么 Visual C++ 中的用户类型不突出显示?

ruby-on-rails - Elasticsearch:突出显示附件中的命中

php - 回合制游戏得分记录