aboutsummaryrefslogtreecommitdiff
path: root/lua/lexers/desktop.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/desktop.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/desktop.lua')
-rw-r--r--lua/lexers/desktop.lua48
1 files changed, 22 insertions, 26 deletions
diff --git a/lua/lexers/desktop.lua b/lua/lexers/desktop.lua
index 2c824e0..93e007f 100644
--- a/lua/lexers/desktop.lua
+++ b/lua/lexers/desktop.lua
@@ -1,53 +1,49 @@
--- Copyright 2006-2022 Mitchell. See LICENSE.
+-- Copyright 2006-2024 Mitchell. See LICENSE.
-- Desktop Entry LPeg lexer.
-local lexer = require('lexer')
-local token, word_match = lexer.token, lexer.word_match
+local lexer = lexer
local P, S = lpeg.P, lpeg.S
-local lex = lexer.new('desktop')
-
--- Whitespace.
-lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1))
+local lex = lexer.new(...)
-- Keys.
-lex:add_rule('key', token('key', word_match{
- 'Type', 'Version', 'Name', 'GenericName', 'NoDisplay', 'Comment', 'Icon', 'Hidden', 'OnlyShowIn',
- 'NotShowIn', 'TryExec', 'Exec', 'Exec', 'Path', 'Terminal', 'MimeType', 'Categories',
- 'StartupNotify', 'StartupWMClass', 'URL'
-}))
-lex:add_style('key', lexer.styles.keyword)
+lex:add_rule('key', lex:tag(lexer.VARIABLE_BUILTIN, lex:word_match(lexer.VARIABLE_BUILTIN)))
-- Values.
-lex:add_rule('value', token('value', word_match('true false')))
-lex:add_style('value', lexer.styles.constant)
+lex:add_rule('value', lex:tag(lexer.CONSTANT_BUILTIN, lexer.word_match('true false')))
-- Identifiers.
-lex:add_rule('identifier', lexer.token(lexer.IDENTIFIER, lexer.alpha * (lexer.alnum + S('_-'))^0))
+lex:add_rule('identifier', lex:tag(lexer.IDENTIFIER, lexer.alpha * (lexer.alnum + S('_-'))^0))
-- Group headers.
local bracketed = lexer.range('[', ']')
-lex:add_rule('header', lexer.starts_line(token('header', bracketed)))
-lex:add_style('header', lexer.styles.label)
+lex:add_rule('header', lexer.starts_line(lex:tag(lexer.HEADING, bracketed)))
-- Locales.
-lex:add_rule('locale', token('locale', bracketed))
-lex:add_style('locale', lexer.styles.class)
+lex:add_rule('locale', lex:tag(lexer.TYPE, bracketed))
-- Strings.
-lex:add_rule('string', token(lexer.STRING, lexer.range('"')))
+lex:add_rule('string', lex:tag(lexer.STRING, lexer.range('"')))
-- Comments.
-lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#')))
+lex:add_rule('comment', lex:tag(lexer.COMMENT, lexer.to_eol('#')))
-- Numbers.
-lex:add_rule('number', token(lexer.NUMBER, lexer.number))
+lex:add_rule('number', lex:tag(lexer.NUMBER, lexer.number))
-- Field codes.
-lex:add_rule('code', lexer.token('code', '%' * S('fFuUdDnNickvm')))
-lex:add_style('code', lexer.styles.variable)
+lex:add_rule('code', lex:tag(lexer.CONSTANT_BUILTIN, '%' * S('fFuUdDnNickvm')))
-- Operators.
-lex:add_rule('operator', token(lexer.OPERATOR, S('=')))
+lex:add_rule('operator', lex:tag(lexer.OPERATOR, S('=')))
+
+-- Word lists.
+lex:set_word_list(lexer.VARIABLE_BUILTIN, {
+ 'Type', 'Version', 'Name', 'GenericName', 'NoDisplay', 'Comment', 'Icon', 'Hidden', 'OnlyShowIn',
+ 'NotShowIn', 'TryExec', 'Exec', 'Exec', 'Path', 'Terminal', 'MimeType', 'Categories',
+ 'StartupNotify', 'StartupWMClass', 'URL'
+})
+
+lexer.property['scintillua.comment'] = '#'
return lex