Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Atom の monit 用 syntax highlight Package を作った

f:id:tbpg:20170316005442j:plain

Atom の monit 用 syntax highlight Package を作りました。

参考資料

公式ドキュメントはないようなので以下の情報を参考に作りました。

Atom の参考資料

Monit の参考資料

monit の Syntax については公式ドキュメントと
Sublime Text版の monit syntax highlight を参考にしました。

開発手順

Packageのテンプレートを生成する

Atom のコマンドパレットで Generate Babel Plugin を選択し、任意の名前をつけます。 すると規定の位置にプロジェクトのテンプレートが生成されます。

ファイルの追加

%project%/grammers/monit.cson を追加します。

package.json

Pluginのメタ情報を設定します。詳しくは下記記事を参照。

tbpgr.hatenablog.com

css

Syntax highlight の name で指定する css のクラスは 現在利用しているテーマの index.less で確認できます。

私は firewatch-syntax を使っているので下記で確認しました

styles/language.less - SebastianSzturo/firewatch-syntax

grammers を実装する

ひたすら正規表現で文法のハイライト設定を作成します。

'name': 'Monit'
'scopeName': 'source.monit'
'fileTypes': [
  'monitrc'
]
'patterns': [
  {
    'comment': 'comment'
    'begin': '^.*(#.*)'
    'beginCaptures':
      '1':
        'name': 'comment'
    'end': '\\n'
  },
  {
    'comment': 'numeric'
    'match': '\\b([0-9]+)\\b'
    'name': 'constant.numeric'
  },
# 中略
  {
    'comment': 'variable language'
    'match': '(?<!\\.)\\b(device|with|times|for|cycles)\\b(?![?!])'
    'name': 'variable.interpolation'
  },
]

詳細は下記

github.com

あとは apm publish でリリースするだけです。

デモ

無事 Syntax highlight が有効になりました。 (あれこれ文法を確認するために適当に書いたファイルなので monit の設定としてはめちゃくちゃな内容です)

f:id:tbpg:20170316002537p:plain

インストール

Atom の Package 管理画面で language-monit を選択してインストールできます

f:id:tbpg:20170316005442j:plain

関連情報