0

我正在使用 zk 框架,我需要做一个以 XML 语法突出显示的 sublime-syntax 文件,但在 zscript 片段中使用 java 语法突出显示,而在样式上下文中使用 CSS 语法。这是 zk 代码的示例:

<zk>
    <style>
        .myClass{
            width=300px;
        }
    </style>

    <div id="panel1" class="myClass" visible="true" >   
        <hlayout width="100px">
            <image id="icon1" src="/Desktop/image1.png" width="32px"></image>   
            <image id="icon2" src="/Desktop/image1.png" width="50px"></image>   
        </hlayout>
    </div>  

    <zscript><![CDATA[
        try{
            if (panel1.isVisible()) {
                //do something
            }
        }catch(Exception e){
            //catch exception
        }
    ]]></zscript>
</zk>

我看到最近有些东西发生了变化,目前网上的解决方案不是很清楚,例如在这个链接我发现了以下注释:

从 Sublime Text Build 3084 开始,添加了新的语法定义格式,扩展名为 .sublime-syntax。

强烈建议使用本文档中描述的旧格式,除非需要与旧版本兼容。

文档可在此处获得: http: //www.sublimetext.com/docs/3/syntax.html

所以我需要一个关于如何使用 SublimeText3 构建新的多语法文件的教程。

4

1 回答 1

2

好的,我通过安装PackageDevCtrl++ 、select 、type 和 selectShift以安装它)解决了我的问题,然后我选择了:-> -> -> 。PPackage Control: Install PackagePackageDevToolsPackagesPackage DevelopementNew Syntax Definition

在这里我写了这段代码:

%YAML 1.2
---
# See http://www.sublimetext.com/docs/3/syntax.html

name: zul
file_extensions:
 - zul
scope: text.zul

contexts:
  main:
    - match: ""
      push: "Packages/XML/XML.sublime-syntax"
      with_prototype:

        - match: '< *zscript *>'
          push: Packages/Java/Java.sublime-syntax
          with_prototype:
            - match: '(?=</ *zscript *>)'
              pop: true

        - match: '< *script *>'
          push: Packages/JavaScript/JavaScript.sublime-syntax
          with_prototype:
            - match: '(?=</ *script *>)'
              pop: true

        - match: '< *style *>'
          push: Packages/CSS/CSS.sublime-syntax
          with_prototype:
            - match: '(?=</ *style *>)'
              pop: true
  • File_extensions是使用此语法的扩展列表,
  • scope用于source编程语言和text标记以及其他一切。
  • 是传递给元素的match正则表达式。push
  • with_prototype类似于语法突出显示中的一个例外,您可以在其中为不同的上下文定义具有不同语法的片段

这个例子一般使用xml语法,标签之间<zscript> ... </zscript>使用java语法高亮,<style> ... </style>上下文使用css语法。

我保存了这个文件,C:\Users\username\AppData\Roaming\Sublime Text 3\Packages\User然后我在我的View-> Syntax-> User-> zul(文件名)中创建了这个语法文件。

于 2017-12-21T14:09:32.937 回答