Syntax 如何在标记中设置另一个语法?使用编辑器升华文本3

Syntax 如何在标记中设置另一个语法?使用编辑器升华文本3,syntax,sublimetext3,sublimetext,Syntax,Sublimetext3,Sublimetext,我很难理解如何在标记中定义一个新的sytanx,我没有理解一些小例子 我想用file.HTML.erb修改语法HTML(Rails),我应该添加什么代码来定义标签中的javascript语法,直到关闭 谢谢您的关注。如果我理解正确,您希望将和之间的代码像JS代码一样突出显示 在这种情况下,您必须使用include:“scope:scope.name”,如下所示: %YAML 1.2 --- # See http://www.sublimetext.com/docs/3/syntax.html f

我很难理解如何在标记中定义一个新的sytanx,我没有理解一些小例子

我想用file.HTML.erb修改语法HTML(Rails),我应该添加什么代码来定义标签
中的javascript语法,直到关闭


谢谢您的关注。

如果我理解正确,您希望将
之间的代码像JS代码一样突出显示

在这种情况下,您必须使用
include:“scope:scope.name”
,如下所示:

%YAML 1.2
---
# See http://www.sublimetext.com/docs/3/syntax.html
file_extensions:
  - test
scope: source.test
contexts:
  main:
    - match: "\\$.*"
      scope: comment.test
    - match: "<% *content_for :js do *%>"
      push: javascript
  javascript:
    - meta_scope: embeded.js
    - match: "<% *end *%>"
      pop: true
    - include: 'scope:source.js'
%YAML 1.2
---
#看http://www.sublimetext.com/docs/3/syntax.html
文件扩展名:
-试验
范围:source.test
上下文:
主要内容:
-匹配:“\\$*”
范围:comment.test
-匹配:“
推送:javascript
javascript:
-meta_作用域:embedded.js
-匹配:“
波普:没错
-包括:'scope:source.js'
为了更加清晰,我使用了上下文(
JavaScript

main
上下文中,前两行基本上匹配注释(以
$
开头),只是为了检查语法是否有效。然后我检查
,如果它与一个匹配,它将推送上下文
javascript
(因此它将停止读取
main
one)

因此,现在,我们在
JavaScript
上下文中,我给作用域起的名字是
embedded.js
meta\u作用域
),然后,如果它匹配
,则
pop:true
会说:停止阅读此上下文,返回到以前的位置,然后返回到
main

最后一行是告诉sublime在这个上下文中,我们使用语法突出显示
javascript

以下是需要注意的事项:

一旦找到一个
,所有内容都会突出显示,即使没有。
只需使用
source.js
定义阻止sublime突出显示代码


我希望它对您有所帮助,如果您对此有任何问题,您可以在

上找到我。如果我理解正确,您希望将
之间的代码像JS代码一样突出显示

在这种情况下,您必须使用
include:“scope:scope.name”
,如下所示:

%YAML 1.2
---
# See http://www.sublimetext.com/docs/3/syntax.html
file_extensions:
  - test
scope: source.test
contexts:
  main:
    - match: "\\$.*"
      scope: comment.test
    - match: "<% *content_for :js do *%>"
      push: javascript
  javascript:
    - meta_scope: embeded.js
    - match: "<% *end *%>"
      pop: true
    - include: 'scope:source.js'
%YAML 1.2
---
#看http://www.sublimetext.com/docs/3/syntax.html
文件扩展名:
-试验
范围:source.test
上下文:
主要内容:
-匹配:“\\$*”
范围:comment.test
-匹配:“
推送:javascript
javascript:
-meta_作用域:embedded.js
-匹配:“
波普:没错
-包括:'scope:source.js'
为了更加清晰,我使用了上下文(
JavaScript

main
上下文中,前两行基本上匹配注释(以
$
开头),只是为了检查语法是否有效。然后我检查
,如果它与一个匹配,它将推送上下文
javascript
(因此它将停止读取
main
one)

因此,现在,我们在
JavaScript
上下文中,我给作用域起的名字是
embedded.js
meta\u作用域
),然后,如果它匹配
,则
pop:true
会说:停止阅读此上下文,返回到以前的位置,然后返回到
main

最后一行是告诉sublime在这个上下文中,我们使用语法突出显示
javascript

以下是需要注意的事项:

一旦找到一个
,所有内容都会突出显示,即使没有。
只需使用
source.js
定义阻止sublime突出显示代码


我希望它对您有所帮助,如果您对此有任何问题,您可以在

上找到我,我真的不明白这个问题,但是content_for用于在另一个位置放置一些标记块,例如:您的html标题中有您的definend,因此如果您有部分或其他视图,您可以为该内容警报(“hello”)设置一块代码; 当视图的处理完成时,该警报将放在html标题上@Jorgenejerat我不明白你的答案,我的问题是指语法,也就是说,在编辑器中正确地给代码着色。我真的不明白这个问题,但content_for用于将一些标记块放在另一个地方,例如:你的html头中有你的,因此,如果您有一个部分或其他视图,您可以为该内容警报(“hello”)设置一个代码块;当视图的处理完成时,该警报将放在html标题上@Jorgenejerat我不明白你的答案,我的问题是指语法,也就是说,在编辑器中正确地着色代码。我使用PackageResourceViewer作为开放资源,所以我打开Rails(HTML)。升华语法并添加代码,但不工作,怎么了?代码:您是提取了整个包,还是仅提取了文件?我不确定这个文件是否只能工作。顺便说一句,让我们在你的要点评论中继续对话,这样我们就有了更多的空间…我在path/Users/Foo/Library/Application Support/Sublime Text 3/Packages/Rails/HTML(Rails)中编辑文件。Sublime syntaxI使用PackageResourceViewer打开资源,所以我打开Rails(HTML)。升华语法并添加代码,但不起作用,怎么了?代码:您是提取了整个包,还是仅提取了文件?我不确定这个文件是否只能工作。顺便说一句,让我们在你的要点评论中继续对话,这样我们就有了更多的空间…我在path/Users/Foo/Library/Application Support/Sublime Text 3/Packages/Rails/HTML(Rails)中编辑文件。Sublime语法