Fra*_*ina 9 syntax customization syntax-highlighting sublimetext2
.tmlanguage
文件通过定义键值对列表来工作.正则表达式是键,语法的类型是值.这是以下列XML-ish方式完成的:
<key>match</key>
<string>[0-9]</string>
<key>name</key>
<string>constant.numeric</string>
Run Code Online (Sandbox Code Playgroud)
我的主要问题是:是否有一个值列表可以代替constant.numeric
文件编辑器如Sublime使用该文件?
Mat*_*DMo 18
有关基本介绍,请查看TextMate手册的语言语法部分.的命名约定部分描述了一些基作用域,例如comment
,keyword
,meta
,storage
,等.然后这些类可以被继承,得到为尽可能详细地-例如,constant.numeric.integer.long.hexadecimal.python
.但是,非常重要的是要注意这些不是硬性规则 - 只是建议.-当你扫描通过不同的语言定义看,例如,所有的功能范围的不同的方式,这将变得明显meta.function-call
,support.function.name
,meta.function-call punctuation.definition.parameters
,等.
了解范围的最佳方法是检查现有.tmLanguage
文件,查看不同语言的来源,并查看在哪里分配范围.XML格式很难随便浏览,因此我使用优秀的PackageDev
插件将XML转换为YAML.然后更容易扫描并查看正则表达式描述的范围:
另一种学习方法是查看不同语言结构的范围,我强烈建议使用ScopeAlways
.安装并激活后,只需放置光标,状态栏中将显示适用于该特定位置的范围.这在设计颜色方案时特别有用,因为您可以轻松查看哪些选择器将突出显示感兴趣的语言功能.
如果您有兴趣,这里使用的配色方案是Neon,我设计的尽可能多的语言看起来尽可能好,涵盖尽可能多的范围.随意查看它,看看如何突出显示不同的语言元素; 这也可以帮助您设计.tmLanguage
与其他语言一致的设计.
我希望这一切都有所帮助,祝你好运!
Chr*_*eux 15
是.该.tmlanguage
格式最初使用的TextMate.所述TextMate的手册提供了完整的文档的格式,包括可能的类型语言构造.
从相关文档页面复制,采用分层格式:
comment
-征求意见.
line
-行注释,我们进一步专门化,以便可以从范围中提取注释开始字符的类型
double-slash
-//
评论double-dash
---
评论number-sign
-#
评论percentage
-%
评论character
-其他类型的行注释.block
-像/* … */
和的多行评论<!-- … -->
.
documentation
-嵌入式文档.constant
-各种形式的常数.
numeric
-那些表示数字,例如42
,1.3f
,0x4AB1U
.character
-那些表示字符,例如<
,\e
,\031
.escape
-像转义序列\e
会constant.character.escape
.language
-由语言提供的常数(通常),它们是"特殊"等true
,false
,nil
,YES
,NO
,等.other
-其他常量,例如CSS中的颜色.entity
-实体引用文档的较大部分,例如章,类,函数或标记.我们不将整个实体的范围entity.*
(我们meta.*
用于此).但我们确实使用entity.*
较大实体中的"占位符",例如,如果实体是章节,我们将entity.name.section
用于章节标题.
name
-我们正在命名更大的实体.
function
-函数的名称.type
-类型声明或类的名称.tag
-标签名称.section
-名称是部分/标题的名称.other
-其他实体.
inherited-class
-超类/基类名称.attribute-name
-属性的名称(主要在标签中).我们正在命名更大的实体.invalid
- "无效"的东西.
illegal
-非法,例如HTML中的&符号或低于字符(不是实体/标记的一部分).deprecated
-对于已弃用的东西,例如使用不推荐使用的API函数或使用严格HTML的样式.keyword
-关键字(当这些不属于其他组时).
control
-主要与流量控制有关,如继续,返回等.operator
-运营商可以是文本(例如或)或字符.other
-其他关键字.markup
-这适用于标记语言,通常适用于较大的文本子集.
underline
-带下划线的文字.
link
-这是为了链接,为方便起见,这是markup.underline
因为如果没有专门针对的主题规则markup.underline.link
那么它将继承下划线样式.bold
-粗体文本(strong
最好是从这个名称中衍生出来的文本).heading
-节标题.可选地提供标题级别作为下一个元件,例如markup.heading.2.html
用于<h2>…</h2>
在HTML中.italic
-斜体文本(具有em
阶段性和相似性的文本应优选地从该名称派生).list
-列出项目.
numbered
-编号列表项.unnumbered
-未编号的列表项.quote
-引用(有时是块引用)文本.raw
-逐字的文本,例如代码清单.通常,禁用拼写检查markup.raw
.other
-其他标记结构.meta
-元范围通常用于标记文档的较大部分.例如,其声明的函数的整个线将是meta.function
与所述子集将是storage.type
,entity.name.function
,variable.parameter
等,并且只有后者将样式.有时,范围的元部分将仅用于限制样式的更通用元素,但大多数情况下,元范围用于范围选择器以激活包项.例如,在Objective-C中,有一个用于类和实现的接口声明的元作用域,允许相同的制表符触发器根据上下文进行不同的扩展.storage
-与"存储"有关的事情.
type
-某事的类型,class
,function
,int
,var
,等.modifier
-一个储存调节等static
,final
,abstract
等.string
-字符串.
quoted
-引用字符串.
single
-单引号字符串:'foo'
.double
-双引号字符串:"foo"
.triple
-三重引用的字符串:"""Python"""
.other
-其他类型的报价:$'shell'
,%s{...}
.unquoted
-像here-docs和here-strings这样的东西.interpolated
- "评估"的字符串:`date`
,$(pwd)
.regexp
-正则表达式:/(\w+)/
.other
-其他类型的字符串(应该很少使用).support
-框架或库提供的东西应低于支持.
function
-框架/库提供的功能.例如NSLog
在Objective-C中support.function
.class
-框架/库提供类时.type
-框架/库提供的类型,这可能仅用于从C派生的语言,其中包含typedef
(和struct
).大多数其他语言会引入新类型作为类.constant
-框架/库提供的常量(魔术值).variable
-框架/库提供的变量.例如NSApp
在AppKit中.other
-以上内容应该是详尽无遗的,但对于其他一切使用support.other
.variable
-变量.并非所有语言都允许轻松识别(并因此标记)这些语言.
parameter
-将变量声明为参数时.language
-保留语言变量,如this
,super
,self
,等.other
-其他变量,如$some_variables
.
归档时间: |
|
查看次数: |
6677 次 |
最近记录: |