在Atom包中,如何在语法中设置样式?

时间:2016-08-13 02:08:22

标签: css packages atom-editor custom-formatting

我想创建一个非常简单的自定义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'
  }
]

当我打开配置文件时,它的外观如下:

enter image description here

请注意ips是如何格式化的,这很棒!我如何为不同的ips选择颜色?所有的ips都是黄色的。如果不是name属性,那么就会有一个颜色属性。

修改

总之,我想对这个例子进行设计:

http://blog.gaku.net/create-a-custom-syntax-highlighting-with-atom-editor/

在该链接中,它没有向您展示如何将不同的颜色/样式放置到不同的规则中。

2 个答案:

答案 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),您应该看到具有指定颜色的图案:

Atom showing colored IP addresses

这是因为:

答案 1 :(得分:2)

很久以前我问过这个问题。我的解决方案停止了工作,所以我回到了它。出于某种原因,现在我必须附加'语法'我的风格的关键字。换句话说,我的\styles\styles.less文件现在看起来像:

atom-text-editor::shadow {
    .syntax--style0 {
      color: red;
    }
    .syntax--style1 {
      color: yellow;
    }
}