aboutsummaryrefslogtreecommitdiff
path: root/lua/lexers/taskpaper.lua
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2023-08-11 01:27:32 +0200
committerRandy Palamar <randy@rnpnr.xyz>2024-03-27 06:04:21 -0600
commit4c4392d29df777ff702dfe99b4f3c23142976e05 (patch)
tree5355324abe18952f7d19d6cfc5dbeb5d6cb72b84 /lua/lexers/taskpaper.lua
parent95bf9f59f8a9a37148bdc0787db378d62c7cd032 (diff)
downloadvis-4c4392d29df777ff702dfe99b4f3c23142976e05.tar.gz
vis-4c4392d29df777ff702dfe99b4f3c23142976e05.tar.xz
update lexers to orbitalquark/scintillua@b789dde
Rather than cherry pick patches from after 6.2 we will just grab everything as is.
Diffstat (limited to 'lua/lexers/taskpaper.lua')
-rw-r--r--lua/lexers/taskpaper.lua36
1 files changed, 12 insertions, 24 deletions
diff --git a/lua/lexers/taskpaper.lua b/lua/lexers/taskpaper.lua
index 4d77285..c314d44 100644
--- a/lua/lexers/taskpaper.lua
+++ b/lua/lexers/taskpaper.lua
@@ -1,39 +1,27 @@
--- Copyright (c) 2016-2022 Larry Hynes. See LICENSE.
+-- Copyright (c) 2016-2024 Larry Hynes. See LICENSE.
-- Taskpaper LPeg lexer
-local lexer = require('lexer')
-local token = lexer.token
+local lexer = lexer
local P, S = lpeg.P, lpeg.S
-local lex = lexer.new('taskpaper', {lex_by_line = true})
-
-local delimiter = P(' ') + P('\t')
+local lex = lexer.new(..., {lex_by_line = true})
-- Notes.
-lex:add_rule('note', token('note', delimiter^1 * lexer.to_eol(lexer.alnum)))
-lex:add_style('note', lexer.styles.constant)
+local delimiter = lpeg.B(' ') + lpeg.B('\t')
+lex:add_rule('note', delimiter * lex:tag('note', lexer.to_eol(lexer.alnum)))
-- Tasks.
-lex:add_rule('task', token('task', delimiter^1 * '-' + lexer.newline))
-lex:add_style('task', lexer.styles['function'])
-
--- Whitespace.
-lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1))
+lex:add_rule('task', delimiter * lex:tag(lexer.LIST, '-'))
-- Projects.
-lex:add_rule('project',
- token('project', lexer.range(lexer.starts_line(lexer.alnum), ':') * lexer.newline))
-lex:add_style('project', lexer.styles.label)
+lex:add_rule('project', lex:tag(lexer.HEADING,
+ lexer.range(lexer.starts_line(lexer.alnum), ':') * lexer.newline))
-- Tags.
-lex:add_rule('extended_tag', token('extended_tag', '@' * lexer.word * '(' *
+lex:add_rule('extended_tag', lex:tag(lexer.TAG .. '.extended', '@' * lexer.word * '(' *
(lexer.word + lexer.digit + '-')^1 * ')'))
-lex:add_style('extended_tag', lexer.styles.comment)
-lex:add_rule('day_tag', token('day_tag', (P('@today') + '@tomorrow')))
-lex:add_style('day_tag', lexer.styles.class)
-lex:add_rule('overdue_tag', token('overdue_tag', '@overdue'))
-lex:add_style('overdue_tag', lexer.styles.preprocessor)
-lex:add_rule('plain_tag', token('plain_tag', '@' * lexer.word))
-lex:add_style('plain_tag', lexer.styles.comment)
+lex:add_rule('day_tag', lex:tag(lexer.TAG .. '.day', (P('@today') + '@tomorrow')))
+lex:add_rule('overdue_tag', lex:tag(lexer.TAG .. '.overdue', '@overdue'))
+lex:add_rule('plain_tag', lex:tag(lexer.TAG .. '.plain', '@' * lexer.word))
return lex