【问题标题】:Host mode files separately from Ace Editor独立于 Ace Editor 的主机模式文件
【发布时间】:2013-07-06 22:18:37
【问题描述】:

我想将 ACE Editor 与桌面应用程序捆绑并在 WebView 中呈现它。 Ace 从file:/// 协议运行。有没有办法将模式文件与ace.js 分开托管?例如ace.js 将位于应用程序包/Application/MyApp.app/... 中,但模式文件位于~/Library/Application Support/MyApp/ace/modes

我从测试项目开始并有以下代码

<script type="text/javascript">
    var require = {
        baseUrl: window.location.protocol + "//" + window.location.host
                + window.location.pathname.split("/").slice(0, -1).join("/"),
        paths: {
            "ace/mode": "/Users/user/ace-build",
        }
    };
</script>
<script type="text/javascript" src="require.js"></script>
<script type="text/javascript" src="ace/ace.js"></script>
<script type="text/javascript">
    require(["ace/ace"], function(ace){
        var editor = ace.edit("editor-container");
        editor.getSession().setUseWorker(false);
        editor.setTheme("ace/theme/xcode");
        editor.getSession().setMode("ace/mode/javascript");
    });
</script>

我希望模块ace/mode/javascript 将从/Users/user/ace-build/javascript 加载,但它从ace/mode-javascript.js 加载。如何使模式从不同位置加载?

【问题讨论】:

    标签: ace-editor


    【解决方案1】:

    使用

    require("ace/config").set("modePath", require.toUrl("ace/mode"))
    

    如果ext-* 和其他文件在同一个文件夹中,您可以改为使用.set("basePath", ..)

    【讨论】:

    • 非常感谢。有用。唯一的问题是在我的情况下它是顶级的 require 调用,所以我必须使用异步版本。最终代码是这个pastebin.com/eKw2dC1i
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多