我想创建一个非常简单的自定义atom包,其中我基于正则表达式突出显示特定单词。我正在处理处理大量ip地址的配置文件。我想将ip地址1.1.1.1换红,例如0.0.0.0蓝色等......
创建包非常简单,这就是我所做的:
创建的文件:
C:\Users\MyUsername\.atom\packages\MyPackage\package.json
{
"name": "language-conf",
"version": "0.0.1",
"description": "Syntax highlighting for configuration files",
"engines": {
"atom": "*"
}
}
AND文件:
C:\Users\MyUsername\.atom\packages\MyPackage\grammars\rules.cson
'scopeName': 'source.conf'
'name': 'CONF'
'fileTypes': ['CONF']
'patterns': [
{
'match': '1\.1\.1\.1'
'name': 'constant.numeric.integer.hexadecimal.python'
},
{
'match': '0\.0\.0\.0'
'name': 'constant.numeric.integer.hexadecimal.python'
}
]
当我打开配置文件时,它的外观如下:
请注意ips是如何格式化的,这很棒!我如何为不同的ips选择颜色?所有的ips都是黄色的。如果不是name属性,那么就会有一个颜色属性。
总之,我想对这个例子进行设计:
http://blog.gaku.net/create-a-custom-syntax-highlighting-with-atom-editor/
在该链接中,它没有向您展示如何将不同的颜色/样式放置到不同的规则中。
答案 0 :(得分:8)
要在Atom中为不同颜色的不同图案设置样式,请先为rules.cson
中的每个图案指定一个不同的名称:
'scopeName': 'source.conf'
'name': 'CONF'
'fileTypes': ['CONF']
'patterns': [
{
# note that you should be using '\\' instead of '\' to escape '.'
'match': '1\\.1\\.1\\.1'
'name': 'style1'
},
{
'match': '0\\.0\\.0\\.0'
'name': 'style0'
}
]
接下来创建一个C:\Users\MyUsername\.atom\packages\MyPackage\styles\styles.less
文件,用于定义每个模式名称所需颜色的CSS样式:
atom-text-editor::shadow {
.style0 {
color: blue;
}
.style1 {
color: red;
}
}
然后重新加载Atom窗口(Ctrl+Alt+R
),您应该看到具有指定颜色的图案:
这是因为:
styles
package.json
目录中的样式表为automatically pulled
atom-text-editor::shadow
伪元素组合的样式将应用于编辑器答案 1 :(得分:2)
很久以前我问过这个问题。我的解决方案停止了工作,所以我回到了它。出于某种原因,现在我必须附加'语法'我的风格的关键字。换句话说,我的\styles\styles.less
文件现在看起来像:
atom-text-editor::shadow {
.syntax--style0 {
color: red;
}
.syntax--style1 {
color: yellow;
}
}