about summary refs log blame commit diff
path: root/vim/.vim/syntax/gemtext.vim
blob: 0dbc3f365ba896d0b65b76eb266624de4b7ca762 (plain) (tree)







































                                                                                      
" Vim syntax file for Gemtext markup
" as described by section 5 of the Gemini Specification
" https://gemini.circumlunar.space/docs/specification.html

if exists("b:current_syntax")
    finish
endif

syntax sync fromstart

syntax match gemtextLinkOperator '\v^\=\>' nextgroup=gemtextLinkURL skipwhite
syntax match gemtextLinkURL '\v\S+' contained nextgroup=gemtextLinkText skipwhite
syntax match gemtextLinkText '\v\S.*$' contained

syntax match gemtextHeadingOperator '\v^\##?#?' nextgroup=gemtextHeadingText skipwhite
syntax match gemtextHeadingText '\v\s*\S.*$' contained
syntax match gemtextNotAHeadingOperator '\v^\####'

syntax match gemtextUnorderedListItemOperator '\v^\*\s'

syntax match gemtextQuoteOperator '\v^\>' nextgroup=gemtextQuoteText skipwhite
syntax match gemtextQuoteText '\v.*$' contained

syntax region gemtextPreformatBlock start="\v^```.*$" end="\v^```" keepend

let b:current_syntax = "gemtext"

hi def link gemtextLinkOperator Operator
hi def link gemtextLinkURL Underlined
hi def link gemtextLinkText String

hi def link gemtextHeadingOperator Operator
hi def link gemtextHeadingText Identifier

hi def link gemtextUnorderedListItemOperator Operator

hi def link gemtextQuoteOperator Operator
hi def link gemtextQuoteText String

hi def link gemtextPreformatBlock PreProc