diff options
| author | Matěj Cepl <mcepl@cepl.eu> | 2023-08-11 01:27:32 +0200 |
|---|---|---|
| committer | Randy Palamar <randy@rnpnr.xyz> | 2024-03-27 06:04:21 -0600 |
| commit | 4c4392d29df777ff702dfe99b4f3c23142976e05 (patch) | |
| tree | 5355324abe18952f7d19d6cfc5dbeb5d6cb72b84 /lua/lexers/desktop.lua | |
| parent | 95bf9f59f8a9a37148bdc0787db378d62c7cd032 (diff) | |
| download | vis-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.lua | 48 |
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 |
