1
0
Fork 0

update `nvim` config

urosm 2024-02-14 15:32:19 +01:00
parent e78346e326
commit c5d8e6610e
2 changed files with 16 additions and 190 deletions

View File

@ -277,6 +277,7 @@ local syntax_warn_h = H:new():fg(black_c):bg(orange_c)
local syntax_italic_h = H:new():attr("italic")
local syntax_bold_h = H:new():attr("bold")
local syntax_bolditalic_h = H:new():attr("bold"):attr("italic")
local syntax_strike_h = H:new():attr("strikethrough")
set_hl("Comment", syntax_comment_h)
set_hl("Constant", syntax_constant_h)
@ -317,6 +318,7 @@ set_hl("Todo", syntax_warn_h)
set_hl("Italic", syntax_italic_h)
set_hl("Bold", syntax_bold_h)
set_hl("BoldItalic", syntax_bolditalic_h)
set_hl("Strike", syntax_strike_h)
-- markdown --------------------------------------------------------------------
local markdown_label_h = H:new():fg(magenta_c)

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: Markdown
" Maintainer: urosm <urosm@kompot.si>
" Last Change: 2024 Jan 13
" Last Change: 2024 Feb 14
if exists("b:current_syntax")
finish
@ -9,202 +9,17 @@ endif
syntax spell toplevel
" html
runtime! syntax/html.vim
unlet! b:current_syntax
" setext heading
syn match markdownSetexHeading /\%(\%^\|^\n\)\@2<=.\+\n[=-]\+\%(\n$\|\%$\)\@=/ contains=@markdownInline,markdownSetextHeadingDelimiter,markdownHeadingAttribute
syn match markdownSetextHeadingDelimiter /^[=-]\+$/ contained
hi def link markdownSetextHeadingDelimiter markdownDelimiter
" atx heading
syn match markdownAtxHeading /\%(\%^\|^\n\)\@2<=#\{1,6} .*\%(\n$\|\%$\)\@=/ contains=@markdownInline,markdownAtxHeadingDelimiter,markdownHeadingAttribute
syn match markdownAtxHeadingDelimiter /^#\{1,6}/ contained
hi def link markdownAtxHeadingDelimiter markdownDelimiter
" heading identifier
syn match markdownHeadingAttribute /.*\zs{.\{-}}$/ contained
hi def link markdownHeadingAttribute markdownDelimiter
" block quotation
syn region markdownBlockquote start=/\%(\%^\|^\n\)\@2<= \{,3}>/ end=/\%(\n$\|\%$\)\@=/ contains=markdownBlockquoteDelimiter
syn match markdownBlockquoteDelimiter /^\%(\s*>\)\+/ contained
hi def link markdownBlockquoteDelimiter markdownDelimiter
" indented code block
"syn match markdownIndentedCodeBlock /\%(\%^\|^\n\)\@2<=\%(^\%( \{4,}\|\t\).*\n\)\+\%($\|\%$\)\@=/
"hi def link markdownIndentedCodeBlock markdownSpecial
" fenced code block
"syn region markdownFencedCodeBlock start=/^\z(\~\{3,}\~*\)/ end=/^\z1\~*$/ keepend contains=markdownFencedCodeBlockDelimiter
"syn region markdownFencedCodeBlock start=/^\z(\`\{3,}\`*\)/ end=/^\z1\`*$/ keepend contains=markdownFencedCodeBlockDelimiter
"hi def link markdownFencedCodeBlock markdownSpecial
" line block
"syn match markdownLineBlock /\%(\%^\|^\n\)\@2<=|.*\n\%(^\%(|\| \).*\n\)*\%($\|\%$\)\@=/ contains=markdownLineBlockDelimiter
"syn match markdownLineBlockDelimiter /^|/ contained
"hi def link markdownLineBlockDelimiter markdownDelimiter
" bullet list
"syn region markdownBulletList start=/\%(\%^\|^\n\)\@2<= \{,3}[*+-] / end=/\%(\n\n\S\)\@=/ contains=markdownBulletListDelimiter,markdownOrderedList,markdownOrderedListDelimiter,markdownBlockquote,markdownBlockquoteDelimiter
"syn match markdownBulletListDelimiter /^\s*\zs[*+-]/ contained
"hi def link markdownBulletListDelimiter markdownDelimiter
" ordered list
"syn region markdownOrderedList start=/\%(\%^\|^\n\)\@2<= \{,3}\%(\%(\d\+\|\l\|\#\|@\)\. \|(\=\%(\d\+\|\l\|\#\|@\)) \)/ end=/\%(\n\n\S\)\@=/ contains=markdownOrderedListDelimiter,markdownTaskListDelimiter,markdownBulletList,markdownBulletListDelimiter,markdownBlockquote,markdownBlockquoteDelimiter
"syn match markdownOrderedlistDelimiter /^\s*\%(\%(\d\+\|\l\|\#\|@\)\. \|(\=\%(\d\+\|\l\|\#\|@\)) \)/ contained
"hi def link markdownOrderedListDelimiter markdownDelimiter
" task list delimiter
"syn match markdownTaskListDelimiter /\%(\%(\%(\d\+\|\l\|\#\|@\)\.\|(\=\%(\d\+\|\l\|\#\|@\))\) \s*\)\@<=\[[ x]\] / contained
"hi def link markdownTaskListDelimiter markdownSpecial
" definition list
" TODO
" example list
"syn region markdownExampleList start=/\%(\%^\|^\n\)\@2<= \{,3}(@[[:lower:][:upper:]_-]*)/ end=/\%(\n\n \{,3}\S\)\@=/ contains=markdownExampleListDelimiter
"syn match markdownExampleListDelimiter /^ \{,3}(@.\{-}) / contained
"hi def link markdownExampleListDelimiter markdownDelimiter
"syn match markdownExampleListLabel /@.\{-}\ze)/ containedin=markdownExampleListDelimiter contains=ALLBUT,markdownExampleListReference
"hi def link markdownExampleListLabel markdownSpecial
"syn match markdownExampleListReference /(@[[:lower:][:upper:]_-]*)/ !contained
"hi def link markdownExampleListReference Error
" horizontal rule
"syn match markdownHRule /^\n\s*\*\s*\(\*\s*\)\{2,}\n$/ display
"syn match markdownHRule /^\n\s*\-\s*\(\-\s*\)\{2,}\n$/ display
"syn match markdownHRule /^\n\s*_\s*\(_\s*\)\{2,}\n$/ display
"hi def link markdownHRule markdownDelimiter
" table
" TODO
" titleblock
"syn region markdownTitleBlock start=/\%^%/ end=/\n$/ contains=@markdownInline,markdownTitleBlockDelimiter
"hi def link markdownTitleBlock markdownTitle
"syn match markdownTitleBlockDelimiter /%\ / contained
"hi def link markdownTitleBlockDelimiter markdownDelimiter
" definition
"syn region markdownReferenceDefinition start=/\[.\{-}\]:/ end=/\(\n\s*".*"$\|$\)/ keepend
"hi def link markdownReferenceDefinition markdownDelimiter
"syn match markdownReferenceDefinitionLabel /\[\zs.\{-}\ze\]:/ contained containedin=markdownReferenceDefinition display
"hi def link markdownReferenceDefinitionLabel markdownLabel
"syn match markdownReferenceDefinitionURL /:\s*\zs.*/ contained containedin=markdownReferenceDefinition
"hi def link markdownReferenceDefinitionURL markdownUnderlined
"syn match markdownReferenceDefinitionTitle /\s*".\{-}"/ contained containedin=markdownReferenceDefinition,markdownReferenceDefinitionURL contains=@Spell,markdownAmpersandEscape
"hi def link markdownReferenceDefinitionTitle markdownTitle
" strikeout
"syn region markdownStrike start=/\~\~/ end=/\~\~/ contains=markdownStrikeout,@Spell keepend
"hi def link markdownStrike htmlStrike
"syn match markdownStrikeDelimiter /\~\~/ contained
"hi def link markdownStrikeDelimiter markdownDelimiter
" subscript
"syn region markdownSubscript start=/\~\(\([[:graph:]]\(\\ \)\=\)\{-}\~\)\@=/ end=/\~/ contains=markdownSubscriptDelimiter keepend
"syn match markdownSubscriptDelimiter /\~/ contained
"hi def link markdownSubscriptDelimiter markdownDelimiter
" superscript
"syn region markdownSuperscript start=/\^\(\([[:graph:]]\(\\ \)\=\)\{-}\^\)\@=/ skip=/\\ / end=/\^/ contains=markdownSuperscriptDelimiter keepend
"syn match markdownSuperscriptDelimiter /\^/ contained
"hi def link markdownSuperscriptDelimiter markdownDelimiter
" simple table
"syn region markdownSimpleTable start=/\%#=2\(^.*[[:graph:]].*\n\)\@<!\(^.*[[:graph:]].*\n\)\(-\{2,}\s*\)\+\n\n\@!/ end=/\n\n/ containedin=ALLBUT,markdownDelimitedCodeBlock,markdownDelimitedCodeBlockStart,markdownYAMLHeader keepend
"syn match markdownSimpleTableDelims /\-/ contained containedin=markdownSimpleTable
"syn match markdownSimpleTableHeader /\%#=2\(^.*[[:graph:]].*\n\)\@<!\(^.*[[:graph:]].*\n\)/ contained containedin=markdownSimpleTable
"hi def link markdownSimpleTableDelims markdownDelimiter
"hi def link markdownSimpleTableHeader markdownBold
"syn region markdownTable start=/\%#=2^\(-\{2,}\s*\)\+\n\n\@!/ end=/\%#=2^\(-\{2,}\s*\)\+\n\n/ containedin=ALLBUT,markdownDelimitedCodeBlock,markdownYAMLHeader keepend
"syn match markdownTableDelims /\-/ contained containedin=markdownTable
"syn region markdownTableMultilineHeader start=/\%#=2\(^-\{2,}\n\)\@<=./ end=/\%#=2\n-\@=/ contained containedin=markdownTable
"hi def link markdownTableMultilineHeader markdownBold
"hi def link markdownTableDelims markdownDelimiter
" grid table
"syn region markdownGridTable start=/\%#=2\n\@1<=+-/ end=/+\n\n/ containedin=ALLBUT,markdownDelimitedCodeBlock,markdownYAMLHeader keepend
"syn match markdownGridTableDelims /[\|=]/ contained containedin=markdownGridTable
"syn match markdownGridTableDelims /\%#=2\([\-+][\-+=]\@=\|[\-+=]\@1<=[\-+]\)/ contained containedin=markdownGridTable
"syn match markdownGridTableHeader /\%#=2\(^.*\n\)\(+=.*\)\@=/ contained containedin=markdownGridTable
"hi def link markdownGridTableDelims markdownDelimiter
"hi def link markdownGridTableHeader markdownDelimiter
" pipe table
"syn region markdownPipeTable start=/\%#=2\([+|]\n\)\@<!\n\@1<=|\(.*|\)\@=/ end=/|.*\n\(\n\|{\)/ containedin=ALLBUT,markdownDelimitedCodeBlock,markdownYAMLHeader keepend
"syn region markdownPipeTable start=/\%#=2^.*\n-.\{-}|/ end=/|.*\n\n/ keepend
"syn match markdownPipeTableDelims /[\|\-:+]/ contained containedin=markdownPipeTable
"syn match markdownPipeTableHeader /\(^.*\n\)\(|-\)\@=/ contained containedin=markdownPipeTable
"syn match markdownPipeTableHeader /\(^.*\n\)\(-\)\@=/ contained containedin=markdownPipeTable
"hi def link markdownPipeTableDelims markdownDelimiter
"hi def link markdownPipeTableHeader markdownDelimiter
"syn match markdownTableHeaderWord /\<.\{-}\>/ contained containedin=markdownGridTableHeader,markdownPipeTableHeader contains=@Spell
"hi def link markdownTableHeaderWord markdownBold
" delimited code blocks
"syn region markdownDelimitedCodeBlock start=/^\(>\s\)\?\z(\([ ]\+\|\t\)\=\~\{3,}\~*\)/ end=/^\z1\~*/ skipnl contains=markdownDelimitedCodeBlockStart,markdownDelimitedCodeBlockEnd keepend
"syn region markdownDelimitedCodeBlock start=/^\(>\s\)\?\z(\([ ]\+\|\t\)\=`\{3,}`*\)/ end=/^\z1`*/ skipnl contains=markdownDelimitedCodeBlockStart,markdownDelimitedCodeBlockEnd keepend
"syn match markdownDelimitedCodeBlockStart /\(\(\_^\n\_^\|\%^\)\(>\s\)\?\( \+\|\t\)\=\)\@<=\(\~\{3,}\~*\|`\{3,}`*\)/ contained containedin=markdownDelimitedCodeBlock nextgroup=markdownDelimitedCodeBlockLanguage
"syn match markdownDelimitedCodeBlockLanguage /\(\s\?\)\@<=.\+\(\_$\)\@=/ contained
"syn match markdownDelimitedCodeBlockEnd /\(`\{3,}`*\|\~\{3,}\~*\)\(\_$\n\(>\s\)\?\_$\)\@=/ contained containedin=markdownDelimitedCodeBlock
"syn match markdownBlockquoteinDelimitedCodeBlock '^>' contained containedin=markdownDelimitedCodeBlock
"syn match markdownCodePre /<pre>.\{-}<\/pre>/ skipnl
"syn match markdownCodePre /<code>.\{-}<\/code>/ skipnl
"hi def link markdownDelimitedCodeBlock markdownSpecial
"hi def link markdownDelimitedCodeBlockStart markdownDelimiter
"hi def link markdownDelimitedCodeBlockEnd markdownDelimiter
"hi def link markdownDelimitedCodeBlockLanguage markdownComment
"hi def link markdownBlockquoteinDelimitedCodeBlock markdownBlockquote
"hi def link markdownCodePre markdownString
" footnote
"syn match markdownFootnoteID /\[\^[^\]]\+\]/ nextgroup=markdownFootnoteDef
"hi def link markdownFootnoteID markdownLabel
" inline footnote
"syn region markdownFootnoteDef start=/\^\[/ skip=/\[.\{-}]/ end=/\]/ contains=markdownLink,markdownLatex,markdownPCite,markdownCiteKey,markdownBold,markdownItalic,markdownBoldItalic,markdownNoFormatted,markdownSuperscript,markdownSubscript,markdownStrike,markdownEnDash,markdownEmDash,markdownEllipses,markdownBeginQuote,markdownEndQuote,@Spell,markdownAmpersandEscape skipnl keepend
"hi def link markdownFootnoteDef markdownComment
"syn match markdownFootnoteDefHead /\^\[/ contained containedin=markdownFootnoteDef
"hi def link markdownFootnoteDefHead markdownDelimiter
"syn match markdownFootnoteDefTail /\]/ contained containedin=markdownFootnoteDef
"hi def link markdownFootnoteDefTail markdownDelimiter
" regular footnotes
"syn region markdownFootnoteBlock start=/\[\^.\{-}\]:\s*\n*/ end=/^\n^\s\@!/ contains=markdownLink,markdownLatex,markdownPCite,markdownCiteKey,markdownBold,markdownItalic,markdownNoFormatted,markdownSuperscript,markdownSubscript,markdownStrike,markdownEnDash,markdownEmDash,markdownNewLine,markdownBoldItalic,markdownEllipses,markdownBeginQuote,markdownEndQuote,markdownLaTeXInlineMath,markdownEscapedDollar,markdownLaTeXCommand,markdownLaTeXMathBlock,markdownLaTeXRegion,markdownAmpersandEscape,@Spell skipnl
"syn match markdownFootnoteBlockSeparator /:/ contained containedin=markdownFootnoteBlock
"hi def link markdownFootnoteBlockSeparator markdownDelimiter
"syn match markdownFootnoteID /\[\^.\{-}\]/ contained containedin=markdownFootnoteBlock
"syn match markdownFootnoteIDHead /\[\^/ contained containedin=markdownFootnoteID
"hi def link markdownFootnoteIDHead markdownDelimiter
"syn match markdownFootnoteIDTail /\]/ contained containedin=markdownFootnoteID
"hi def link markdownFootnoteIDTail markdownDelimiter
" yaml
syn include @YAML syntax/yaml.vim
unlet! b:current_syntax
syn region markdownYAMLHeader start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^\([-.]\)\1\{2}$/ keepend contains=@YAML containedin=TOP
" emphasis
syn region markdownItalic matchgroup=markdownDelimiter start=/\\\@1<!\(\_^\|\s\|[[:punct:]]\)\@<=\*\S\@=/ skip=/\(\*\*\|__\)/ end=/\*\([[:punct:]]\|\s\|\_$\)\@=/ contains=@Spell
syn region markdownItalic matchgroup=markdownDelimiter start=/\\\@1<!\(\_^\|\s\|[[:punct:]]\)\@<=_\S\@=/ skip=/\(\*\*\|__\)/ end=/\S\@1<=_\([[:punct:]]\|\s\|\_$\)\@=/ contains=@Spell
hi def link markdownItalic htmlItalic
" bold
syn region markdownBold matchgroup=markdownDelimiter start=/\(\\\@<!\*\)\{2}/ end=/\(\\\@<!\*\)\{2}/ contains=@Spell
syn region markdownBold matchgroup=markdownDelimiter start=/__/ end=/__/ contains=@Spell
hi def link markdownBold htmlBold
" bold italic
syn region markdownBoldItalic matchgroup=markdownDelimiter start=/\*\{3}\(\S[^*]*\(\*\S\|\n[^*]*\*\S\)\)\@=/ end=/\S\@<=\*\{3}/ contains=@Spell
syn region markdownBoldItalic matchgroup=markdownDelimiter start=/\(___\)\S\@=/ end=/\S\@<=___/ contains=@Spell
hi def link markdownBoldItalic htmlBoldItalic
syn region markdownBoldInItalic matchgroup=markdownDelimiter start=/\*\*/ end=/\*\*/ contained containedin=markdownItalic contains=@Spell
syn region markdownBoldInItalic matchgroup=markdownDelimiter start=/__/ end=/__/ contained containedin=markdownItalic contains=@Spell
@ -241,6 +56,15 @@ hi def link markdownFootnoteReference markdownLabel
syn match markdownReferenceKey /@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&-+?<>~\/]*/
hi def link markdownReferenceKey markdownLabel
" html comment
syn region markdownHTMLcomment start=/<!--/ end=/-->/ keepend contains=@Spell
hi def link markdownHTMLcomment markdownComment
" yaml
syn include @YAML syntax/yaml.vim
unlet! b:current_syntax
syn region markdownYAMLHeader start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^\([-.]\)\1\{2}$/ keepend contains=@YAML containedin=TOP
" styling
hi def link markdownComment Comment
hi def link markdownConstant Constant
@ -277,10 +101,10 @@ hi def link markdownUnderlined Underlined
hi def link markdownIgnore Ignore
hi def link markdownError Error
hi def link markdownItalic htmlItalic
hi def link markdownBold htmlBold
hi def link markdownItalicBold htmlItalicBold
hi def link markdownStrike htmlStrike
hi def link markdownItalic Italic
hi def link markdownBold Bold
hi def link markdownBoldItalic BoldItalic
hi def link markdownStrike Strike
hi def link markdownTitle Title
let b:current_syntax = "markdown"