Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在tmLanguage文件中添加另一个要解析为嵌入式JS的标记? 背景故事(不是很重要,但它勾勒出了问题的框架)_Javascript_Textmate_Taglib_Sublimetext - Fatal编程技术网

Javascript 如何在tmLanguage文件中添加另一个要解析为嵌入式JS的标记? 背景故事(不是很重要,但它勾勒出了问题的框架)

Javascript 如何在tmLanguage文件中添加另一个要解析为嵌入式JS的标记? 背景故事(不是很重要,但它勾勒出了问题的框架),javascript,textmate,taglib,sublimetext,Javascript,Textmate,Taglib,Sublimetext,我在JSP中有一个TagLib,它接受其内容并将其包含的代码包装在脚本块中(它做的更多,但为了解决这个问题,它并不重要)。例如: <aui:script use="some-module"> //my code </aui:script> //我的代码 将作为 <script type="text/javascript> AUI().use('sub-module', function(A) { // my code

我在JSP中有一个TagLib,它接受其内容并将其包含的代码包装在脚本块中(它做的更多,但为了解决这个问题,它并不重要)。例如:

<aui:script use="some-module">
    //my code
</aui:script>

//我的代码
将作为

<script type="text/javascript>
    AUI().use('sub-module', function(A) {
        // my code
    }
</script>

我在使用正则表达式规则时遇到了很多麻烦,但我还是设法使用普通规则使它在某种程度上正常工作。我应该补充一点,这是一个新的区块,与常规区块一样

{
    name = 'source.js.embedded.html';
    begin = '(?:^\s+)?(<)((?i:(aui[\:]script)))\b(?![^>]*/>)';
    end = '(?<=</(aui[\:]script))(>)(?:\s*\n)?';
    beginCaptures = {
        1 = { name = 'punctuation.definition.tag.html'; };
        2 = { name = 'entity.name.tag.script.html'; };
    };
    endCaptures = {
        2 = {
            name = 'punctuation.definition.tag.html';
        };
    };
    patterns = (
        {
            include = '#tag-stuff';
        },
        {
            begin = '(?<!</(?:aui[\:]script))(>)';
            end = '(</)((?i:aui[\:]script))';
            captures = {
                1 = {
                    name = 'punctuation.definition.tag.html';
                };
                2 = {
                    name = 'entity.name.tag.script.html';
                };
            };
            patterns = (
                {   name = 'comment.line.double-slash.js';
                    match = '(//).*?((?=</(aui[\:]script))|$\n?)';
                    captures = {
                        1 = {
                            name = 'punctuation.definition.comment.js';
                        };
                    };
                },
                {
                    name = 'comment.block.js';
                    begin = '/\*';
                    end = '\*/|(?=</(aui[\:]script))';
                    captures = {
                        0 = {
                            name = 'punctuation.definition.comment.js';
                        };
                    };
                },
                {
                    include = '#php';
                },
                {
                    include = 'source.js';
                },
            );
        },
    );
}
{
name='source.js.embedded.html';
begin='(?:^\s+)(]*/>);

end='(?我在使用正则表达式规则时遇到了很多麻烦,但我还是设法使用普通规则使它在某种程度上正常工作。我应该补充一点,这是一个新的块,与常规块一样

{
    name = 'source.js.embedded.html';
    begin = '(?:^\s+)?(<)((?i:(aui[\:]script)))\b(?![^>]*/>)';
    end = '(?<=</(aui[\:]script))(>)(?:\s*\n)?';
    beginCaptures = {
        1 = { name = 'punctuation.definition.tag.html'; };
        2 = { name = 'entity.name.tag.script.html'; };
    };
    endCaptures = {
        2 = {
            name = 'punctuation.definition.tag.html';
        };
    };
    patterns = (
        {
            include = '#tag-stuff';
        },
        {
            begin = '(?<!</(?:aui[\:]script))(>)';
            end = '(</)((?i:aui[\:]script))';
            captures = {
                1 = {
                    name = 'punctuation.definition.tag.html';
                };
                2 = {
                    name = 'entity.name.tag.script.html';
                };
            };
            patterns = (
                {   name = 'comment.line.double-slash.js';
                    match = '(//).*?((?=</(aui[\:]script))|$\n?)';
                    captures = {
                        1 = {
                            name = 'punctuation.definition.comment.js';
                        };
                    };
                },
                {
                    name = 'comment.block.js';
                    begin = '/\*';
                    end = '\*/|(?=</(aui[\:]script))';
                    captures = {
                        0 = {
                            name = 'punctuation.definition.comment.js';
                        };
                    };
                },
                {
                    include = '#php';
                },
                {
                    include = 'source.js';
                },
            );
        },
    );
}
{
name='source.js.embedded.html';
begin='(?:^\s+)(]*/>);

end='(?我还为那些需要该格式的人添加了一个XML版本。你说的“这是一个新块”是什么意思?你是说它被添加到
HTML.tmLanguage
文件的某个地方?我还为那些需要该格式的人添加了一个XML版本。你说的“这是一个新块”是什么意思?您的意思是这会添加到
HTML.tmLanguage
文件的某个地方吗?