首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于XML、JSON的Ace模式,但不适用于liquid

适用于XML、JSON的Ace模式,但不适用于liquid
EN

Stack Overflow用户
提问于 2017-03-07 18:34:38
回答 1查看 933关注 0票数 0

将ACE编辑器实例设置为JSON或XML语言模式效果很好。

但我的声明

代码语言:javascript
复制
LiquidMode = ace.require("ace/mode/liquid").Mode,
// fails, ace.require("ace/mode/liquid") returns undefined

但是ace/mode/liquid文件是在cdn上定义的,并由它返回。

感谢您的任何想法或替代方案。

cdn电话及更多内容:

代码语言:javascript
复制
<script    src="https://cdn.jsdelivr.net/g/ace@1.2.6(noconflict/ace.js+noconflict/mode-hjson.js+noconflict/mode-liquid.js+noconflict/mode-xml.js+noconflict/theme-chrome.js)">
</script>

// Javascript file
var XMLMode = ace.require("ace/mode/xml").Mode,
    JSONMode = ace.require("ace/mode/json").Mode,
    LiquidMode = ace.require("ace/mode/liquid").Mode; // fails, 
        // ace.require("ace/mode/liquid") returns undefined

...
ace_session.setMode(new JSONMode()); // works great
...
ace_session.setMode(new LiquidMode());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 23:23:27

当你用多个文件语法加载ace.js时,动态加载不起作用,因为ace无法确定加载它的url。

作为一种变通办法,您可以使用

代码语言:javascript
复制
var url = "https://cdn.jsdelivr.net/ace/1.2.6/noconflict/"
ace.config.set("basePath", url)

请参阅https://github.com/ajaxorg/ace/blob/v1.2.6/lib/ace/config.js#L185

请注意,您不需要传递模式对象,setMode("ace/mode/liquid")也可以工作。

代码语言:javascript
复制
<script    src="https://cdn.jsdelivr.net/g/ace@1.2.6(noconflict/ace.js+noconflict/mode-json.js+noconflict/mode-liquid.js+noconflict/mode-xml.js+noconflict/theme-chrome.js)">
</script>

<script >
// Javascript file
var XMLMode = ace.require("ace/mode/xml").Mode,
    JSONMode = ace.require("ace/mode/json").Mode,
    LiquidMode = ace.require("ace/mode/liquid").Mode; 
  debugger  
var editor = ace.edit()   
var url = "https://cdn.jsdelivr.net/ace/1.2.6/noconflict/";
ace.config.set("basePath", url)

editor.setValue("use core::rand::RngUtil;\n\nfn main() {\n    \n}", -1)
editor.setOptions({
    autoScrollEditorIntoView: true,
    maxLines: 15,
});
document.body.appendChild(editor.container)
editor.session.setMode("ace/mode/rust");

</script>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42645938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档