mirror of
https://github.com/ascii-boxes/boxes.git
synced 2025-01-22 05:38:35 +01:00
Improve vim syntax file with support for different string delimiters #64
This commit is contained in:
parent
a407f22913
commit
9e56dec538
18
boxes.vim
18
boxes.vim
@ -33,7 +33,6 @@ syntax case ignore
|
|||||||
" Set the keyword characters
|
" Set the keyword characters
|
||||||
syntax iskeyword a-z,A-Z
|
syntax iskeyword a-z,A-Z
|
||||||
|
|
||||||
" TODO foldlevel - It should be possible to fold box designs
|
|
||||||
" TODO spell checking - In a boxes config file, only comments should be spell checked.
|
" TODO spell checking - In a boxes config file, only comments should be spell checked.
|
||||||
|
|
||||||
|
|
||||||
@ -69,32 +68,33 @@ syntax match boxesError /\S/
|
|||||||
"
|
"
|
||||||
syntax match boxesComma contained display /,/
|
syntax match boxesComma contained display /,/
|
||||||
syntax match boxesBraces display /[{}]/
|
syntax match boxesBraces display /[{}]/
|
||||||
" TODO Introduce region between delim and delim|end which exists 361 times to cover all combinations
|
|
||||||
syntax match boxesDelSpec contained display /[^ \t\r]\+/
|
syntax match boxesDelSpec contained display /[^ \t\r]\+/
|
||||||
syntax match boxesNameAtEnd display /[a-zA-ZäöüÄÖÜ][a-zA-Z0-9_\-üäöÜÄÖß]*/ skipwhite skipempty
|
syntax match boxesNameAtEnd display /[a-zA-ZäöüÄÖÜ][a-zA-Z0-9_\-üäöÜÄÖß]*/ skipwhite skipempty
|
||||||
syntax match boxesWord display /[a-zA-ZäöüÄÖÜ][a-zA-Z0-9_\-üäöÜÄÖß]*/
|
syntax match boxesWord display /[a-zA-ZäöüÄÖÜ][a-zA-Z0-9_\-üäöÜÄÖß]*/
|
||||||
syntax match boxesNumber display /[-+]\=\d\+/
|
syntax match boxesNumber display /[-+]\=\d\+/
|
||||||
|
|
||||||
|
" TODO Introduce a region between delim and delim|end which exists multiple times to cover all escape characters
|
||||||
|
" with specialized string definitions
|
||||||
|
|
||||||
" a list, used inside shape blocks and for the elastic list
|
" a list, used inside shape blocks and for the elastic list
|
||||||
syntax region boxesList matchgroup=Normal start="(" end=")" contains=boxesString,boxesShapes,boxesComma,boxesError,boxesComment
|
syntax region boxesList matchgroup=Normal start="(" end=")" contains=boxesString,boxesShapes,boxesComma,boxesError,boxesComment
|
||||||
|
|
||||||
" Strings
|
" Strings
|
||||||
" TODO the uncontained is normal, and contained ones belong to a delim region
|
syntax region boxesString display start=/\z\(["~'`!@%&*=:;<>?/|.\\]\)/ skip=/\\\\\|\\\z1/ end=/\z1/ oneline
|
||||||
syntax region boxesString display start=/"/ skip=/\\\\\|\\"/ end=/"/ oneline
|
|
||||||
|
|
||||||
" File path of a 'parent' definition
|
" File path of a 'parent' definition
|
||||||
syntax match boxesParentGlobal display "\s:global:\s*$"
|
syntax match boxesParentGlobal display "\s:global:\s*$"
|
||||||
syntax match boxesParentPath contained display "[^:]\{-}$"
|
syntax match boxesParentPath contained display "[^:]\{-}$"
|
||||||
|
|
||||||
" The SAMPLE block
|
|
||||||
syntax region boxesSample matchgroup=boxesBlocks start="sample" end=+^[ \t]*ends[ \t\r]*$+ keepend
|
|
||||||
|
|
||||||
" a BOX definition with aliases
|
" a BOX definition with aliases
|
||||||
syntax region boxesNames matchgroup=boxesBoxStmt start=/\<box\s\+/ end=/\>[ \t\r\n]\+\</re=s,he=s keepend contains=boxesComma
|
syntax region boxesNames matchgroup=boxesBoxStmt start=/\<box\s\+/ end=/\>[ \t\r\n]\+\</re=s,he=s keepend contains=boxesComma
|
||||||
|
|
||||||
" Comments may appear anywhere in the file
|
" Comments may appear anywhere in the file
|
||||||
syntax match boxesComment display /#.*$/
|
syntax match boxesComment display /#.*$/
|
||||||
|
|
||||||
|
" The SAMPLE block
|
||||||
|
syntax region boxesSample matchgroup=boxesBlocks start="sample" end=+^[ \t]*ends[ \t\r]*$+ keepend
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"
|
"
|
||||||
@ -126,7 +126,7 @@ if !exists("did_boxes_syntax_inits")
|
|||||||
hi link boxesParentGlobal PreProc
|
hi link boxesParentGlobal PreProc
|
||||||
hi link boxesParentPath String
|
hi link boxesParentPath String
|
||||||
hi link boxesBlocks Statement
|
hi link boxesBlocks Statement
|
||||||
hi link boxesDelim boxesBlocks
|
hi link boxesDelim Keyword
|
||||||
hi link boxesRegStuff Label
|
hi link boxesRegStuff Label
|
||||||
hi link boxesShapes Type
|
hi link boxesShapes Type
|
||||||
hi link boxesPads Type
|
hi link boxesPads Type
|
||||||
@ -144,4 +144,4 @@ let b:current_syntax = "boxes"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
"EOF vim: sw=4
|
"EOF vim: sw=4 nowrap :
|
||||||
|
Loading…
Reference in New Issue
Block a user