diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2017-05-30 15:06:01 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2017-05-30 15:07:19 +0200 |
| commit | 61ff2920bad08c10a4c53e3d93fa152721b348fc (patch) | |
| tree | 90b42f5e441373da72454f86751d5ab21fee3108 /lua | |
| parent | 554d6b887d1d56de330f63bf735ef96ab10cacd2 (diff) | |
| download | vis-61ff2920bad08c10a4c53e3d93fa152721b348fc.tar.gz vis-61ff2920bad08c10a4c53e3d93fa152721b348fc.tar.xz | |
lexer: add simple strace(1) output lexer
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/lexers/strace.lua | 31 | ||||
| -rw-r--r-- | lua/plugins/filetype.lua | 5 |
2 files changed, 36 insertions, 0 deletions
diff --git a/lua/lexers/strace.lua b/lua/lexers/strace.lua new file mode 100644 index 0000000..deb8fb7 --- /dev/null +++ b/lua/lexers/strace.lua @@ -0,0 +1,31 @@ +-- strace(1) output lexer + +local l = require('lexer') +local token, word_match = l.token, l.word_match +local S = lpeg.S + +local M = {_NAME = 'strace'} + +local ws = token(l.WHITESPACE, l.space^1) +local string = token(l.STRING, l.delimited_range('"', true) + l.delimited_range("'", true)) +local number = token(l.NUMBER, l.float + l.integer) +local constant = token(l.CONSTANT, (l.upper + '_') * (l.upper + l.digit + '_')^0) +local syscall = token(l.KEYWORD, l.starts_line(l.word)) +local operator = token(l.OPERATOR, S('+-/*%<>~!=^&|?~:;,.()[]{}')) +local comment = token(l.COMMENT, l.nested_pair('/*', '*/') + ('(' * (l.alpha + ' ')^1 * ')\n')) +local result = token(l.TYPE, '= ' * l.integer) + +M._rules = { + {'whitespace', ws}, + {'keyword', syscall}, + {'constant', constant}, + {'string', string}, + {'comment', comment}, + {'type', result}, + {'number', number}, + {'operator', operator}, +} + +M._LEXBYLINE = true + +return M diff --git a/lua/plugins/filetype.lua b/lua/plugins/filetype.lua index 5a6259a..9d44391 100644 --- a/lua/plugins/filetype.lua +++ b/lua/plugins/filetype.lua @@ -349,6 +349,11 @@ vis.ftdetect.filetypes = { sql= { ext = { "%.ddl$", "%.sql$" }, }, + strace = { + detect = function(file, data) + return data:match("^execve%(") + end + }, systemd = { ext = { "%.automount$", "%.device$", "%.mount$", "%.path$", |
