3

SublimeLinterのプラグインの作成を開始しましたが、これまでのところリンティング自体は機能しています。ただし、強調表示を機能させることができませんでした。私のリンター(実際にはコンパイラー)は列を出力しないので、失敗した行が強調表示されるとうれしいです。

の関連部分はlinter.py次のようになります。

regex = (
  r'Error in script \".+?\" on line (?P<line>\d+) -- aborting creation process'
)
multiline = True
line_col_base = (1, 1)

リンター実行可能ファイルのエラーの例は次のようになります。

Invalid command: Naem
Error in script "/Users/testuser/Desktop/lint-test.nsi" on line 5 -- aborting creation process

SublimeLinter がエラー メッセージをどのように利用できるかはわかりません。そのため、今のところ行の部分を正しく取得できれば幸いです。

編集:以下のコメントによると、私は を利用しようとしましたがnear、ドキュメントが少なく、例がないため、まだ解決策を見つけることができませんでした. 私の更新された正規表現パターン:

regex = (
  r'Invalid command\: (?P<near>\w+)'
  r'Error in script \"(.+?)\" on line (?P<line>\d+) -- aborting creation process'
)

これはスペルミスのあるコマンドのみをキャプチャしますが、答えがあれば、出力を適切にキャプチャする方法を理解しやすくなります。

4

1 に答える 1

0

これが私が最終的に使用したものです:

syntax = 'nsis'
    regex = (
        r'(?P<message>[^\r?\n]+)\r?\n'
        r'(?P<error>Error) in script "[^"]+" on line (?P<line>\d+) -- aborting creation process'
    )
    multiline = True
    error_stream = util.STREAM_STDOUT
    line_col_base = (1, 1)

私の記憶が正しければ、それは改行の欠落でした。

于 2016-04-09T17:59:16.210 に答える