blob: 8d63e6f9189938770ab71a904713d95c3dad4a73 [file] [log] [blame]
David Mandelberged7d8e52025-02-23 09:41:42 +01001" Vim syntax file
2" Language: m17n database
3" Maintainer: David Mandelberg <david@mandelberg.org>
4" Last Change: 2025 Feb 21
5"
6" https://www.nongnu.org/m17n/manual-en/m17nDBFormat.html describes the
7" syntax, but some of its regexes don't match the code. read_element() in
8" https://git.savannah.nongnu.org/cgit/m17n/m17n-lib.git/tree/src/plist.c
9" seems to be a better place to understand the syntax.
10
11if exists("b:current_syntax")
12 finish
13endif
14let b:current_syntax = "m17ndb"
15
16syn match m17ndbSymbol /\([^\x00- ()"\\]\|\\\_.\)\+/
17syn match m17ndbComment ";.*$" contains=@Spell
18syn match m17ndbInteger "-\?[0-9]\+"
19syn match m17ndbInteger "[0#]x[0-9A-Fa-f]\+"
20syn match m17ndbCharacter "?\(\_[^\\]\|\\\_.\)"
21syn region m17ndbText start=/\Z"/ skip=/\\\\\|\\"/ end=/"/
22syn region m17ndbPlist matchgroup=m17ndbParen start="(" end=")" fold contains=ALL
23
24hi def link m17ndbCharacter Character
25hi def link m17ndbComment Comment
26hi def link m17ndbInteger Number
27hi def link m17ndbParen Delimiter
28hi def link m17ndbText String