Adobe Brackets中的代码镜像简单模式

时间:2014-11-02 17:01:03

标签: javascript syntax-highlighting codemirror adobe-brackets

我正在尝试使用自定义代码镜像模式与Adobe Brackets代码编辑器一起使用。

目前我可以突出显示{{code}}但我想使用Code Mirror简单模式(我更容易理解)。

My Brackets扩展代码是(main.js):

define(function (require, exports, module) {
    'use strict';

    var LanguageManager = brackets.getModule("language/LanguageManager");


    CodeMirror.defineMode("laravelblade", function (config, parserConfig) {
        var mustacheOverlay = {
            token: function (stream, state) {

                var ch;

                //Highlight Comments {{-- --}}
                if (stream.match("{{--")) {
                    while ((ch = stream.next()) != null)
                        if (ch == "}" && stream.next() == "}") break;
                    stream.eat("}");
                    return "comment";
                }
                //--

                //Highlight {{ $var }})
                if (stream.match("{{")) {
                    while ((ch = stream.next()) != null)
                        if (ch == "}" && stream.next() == "}") break;
                    stream.eat("}");
                    return "def";
                }

                //Highlight {% $var %} (Laravel 5)
                else if (stream.match('{%')) {
                    while ((ch = stream.next()) != null)
                        if (ch == "%" && stream.next() == "}") break;
                    stream.eat("}");
                    return "def";
                }

                //Highlight {% $var %} (Laravel 5)
                else if (stream.match('{%')) {
                    while ((ch = stream.next()) != null)
                        if (ch == "%" && stream.next() == "}") break;
                    stream.eat("}");
                    return "def";
                }

                //Return Null if no condition was met.
                else if (stream.next() != null) {
                    return null;
                }
            }
        };
        return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "php"), mustacheOverlay);
    });


    LanguageManager.defineLanguage("laravelblade", {
        "name": "Laravel Blade",
        "mode": "laravelblade",
        "fileExtensions": ["blade.php"],
        "blockComment": ["{{--", "--}}"]
    });
});

您能为我提供一个代码镜像简单模式的简单示例吗? (我已经阅读过codemirror文档,我曾尝试按照这些示例进行操作,但我不能让他们使用Brackets语法高亮显示...)

谢谢。

编辑:实际代码有效,但我希望使用Code Mirror简单模式实现相同的目的。

此外,我复制了此代码并将其更改为我的需要。但我无法使用括号从头开始另一个代码镜像模式......所以我可能会错过一些东西...

1 个答案:

答案 0 :(得分:-1)

我有类似的问题。

对于一个工作示例,请查看dockerfile模式(在OSX中,这是在Applications / Brackets / Contents / www / thirdparty / CodeMirror2 / mode / dockerfile中)。