neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

scdoc.vim (2743B)


      1 " Syntax file for scdoc files
      2 " Maintainer: Gregory Anders <contact@gpanders.com>
      3 " Last Updated: 2022-05-09
      4 " Upstream: https://github.com/gpanders/vim-scdoc
      5 
      6 if exists('b:current_syntax')
      7    finish
      8 endif
      9 let b:current_syntax = 'scdoc'
     10 
     11 syntax match scdocFirstLineError "\%^.*$"
     12 syntax match scdocFirstLineValid "\%^\S\+(\d[0-9A-Za-z]*)\%(\s\+\"[^"]*\"\%(\s\+\"[^"]*\"\)\=\)\=$"
     13 
     14 syntax region scdocCommentError start="^;\S" end="$" keepend
     15 syntax region scdocComment start="^; " end="$" keepend
     16 
     17 syntax region scdocHeaderError start="^#\{3,}" end="$" keepend
     18 syntax region scdocHeader start="^#\{1,2}" end="$" keepend
     19 
     20 syntax match scdocIndentError "^[ ]\+"
     21 
     22 syntax match scdocLineBreak "++$"
     23 
     24 syntax region scdocOrderedListItem matchgroup=scdocOrderedListMarker start="^\z(\s*\)\." skip="^\z1  .*$" end="^" contains=scdocBold,scdocUnderline
     25 syntax region scdocListItem matchgroup=scdocListMarker start="^\z(\s*\)-" skip="^\z1  .*$" end="^" contains=scdocBold,scdocUnderline
     26 
     27 " Tables cannot start with a column
     28 syntax match scdocTableError "^:"
     29 
     30 syntax region scdocTable matchgroup=scdocTableEntry start="^[\[|\]][\[\-\]<=>]" end="^$" contains=scdocTableEntry,scdocTableError,scdocTableContinuation,scdocBold,scdocUnderline,scdocPre
     31 syntax match scdocTableError "^.*$" contained
     32 syntax match scdocTableContinuation "^   \+\S\+" contained
     33 syntax match scdocTableEntry "^[|:][\[\-\]<=> ]" contained
     34 syntax match scdocTableError "^[|:][\[\-\]<=> ]\S.*$" contained
     35 
     36 syntax region scdocBold concealends matchgroup=scdocBoldDelimiter start="\\\@<!\*" end="\\\@<!\*"
     37 syntax region scdocUnderline concealends matchgroup=scdocUnderlineDelimiter start="\<\\\@<!_" end="\\\@<!_\>"
     38 syntax region scdocPre matchgroup=scdocPreDelimiter start="^\t*```" end="^\t*```"
     39 
     40 syntax sync minlines=50
     41 
     42 hi default link scdocFirstLineValid     Comment
     43 hi default link scdocComment            Comment
     44 hi default link scdocHeader             Title
     45 hi default link scdocOrderedListMarker  Statement
     46 hi default link scdocListMarker         scdocOrderedListMarker
     47 hi default link scdocLineBreak          Special
     48 hi default link scdocTableSpecifier     Statement
     49 hi default link scdocTableEntry         Statement
     50 
     51 hi default link scdocFirstLineError        Error
     52 hi default link scdocCommentError          Error
     53 hi default link scdocHeaderError           Error
     54 hi default link scdocIndentError           Error
     55 hi default link scdocTableError            Error
     56 hi default link scdocTableError Error
     57 
     58 hi default link scdocPreDelimiter       Delimiter
     59 
     60 hi default scdocBold term=bold cterm=bold gui=bold
     61 hi default scdocUnderline term=underline cterm=underline gui=underline
     62 hi default link scdocBoldDelimiter scdocBold
     63 hi default link scdocUnderlineDelimiter scdocUnderline