【问题标题】:multiple syntax highlighting in sublimetext 3 with .sublime-syntax file type使用 .sublime-syntax 文件类型在 sublimetext 3 中突出显示多种语法
【发布时间】:2017-12-11 16:19:47
【问题描述】:

我正在使用 zk 框架,我需要做一个以 XML 语法突出显示的 sublime-syntax 文件,但在 zscript sn-p 中使用 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>

我看到最近有些东西变了,目前网上的解决方案不是很清楚,比如在this link我找到了如下注释:

从 Sublime Text Build 3084 开始,一种新的语法定义格式已经 添加,带有 .sublime-syntax 扩展名。

强烈建议将其用于支持旧格式 本文档中描述的,除非与旧版本兼容 是需要的。

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

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

【问题讨论】:

  • 我猜你已经知道了,但是为了确定:Official plugin 在 Eclipse 中支持这一点。此外,谷歌搜索“崇高的多重语法突出显示”出现了this question。这可能有效,因为您可以使用 zscript 标签作为开始和结束模式。
  • 不是一回事,现在换个方式来做
  • 但是官方的 Eclipse Plugin 对我来说做得不是很好,总的来说我不太欣赏 Eclipse

标签: sublimetext3 syntax-highlighting zk zscript


【解决方案1】:

好的,我通过安装PackageDevCtrl+Shift+P,选择Package Control: Install Package,键入并选择PackageDev 以安装它)解决了我的问题,然后我选择了: Tools -> Packages -> Package Developement -> New 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 是使用此语法的扩展列表,
  • scopesource 用于编程语言,text 用于标记和其他所有内容。
  • match 是传递给push 元素的正则表达式。
  • with_prototype 类似于语法突出显示中的一个例外,您可以在其中为不同的上下文定义具有不同语法的 sn-p

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2015-11-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2016-04-01
    相关资源
    最近更新 更多