SublimeText 3 中的多个语法突出显示,具有 .sublime-syntax 文件类型



我正在使用zk框架,我需要做一个在XML语法中突出显示的崇高的语法文件,但是在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 构建一个新的多语法文件。

好的,我通过安装 PackageDev 解决了我的问题(Ctrl+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类似于语法突出显示中的异常,您可以在其中为不同的上下文定义具有不同语法的代码段

此示例通常使用xml语法,在标记之间使用<zscript> ... </zscript>java语法突出显示,在<style> ... </style>上下文中使用css语法。

我将这个文件保存在C:UsersusernameAppDataRoamingSublime Text 3PackagesUser中,然后在我的View->Syntax->User->zul(文件名)中建立了这个语法文件。

相关内容

  • 没有找到相关文章

最新更新