mirror of
https://tildegit.org/sloum/gemini-vim-syntax.git
synced 2024-08-14 22:46:59 +00:00
45 lines
1.2 KiB
VimL
45 lines
1.2 KiB
VimL
" Vim syntax file
|
|
" " Language: gemini
|
|
" " Maintainer: sloum < sloum AT rawtext.club >
|
|
" " Latest Revision: 02 February 2020
|
|
|
|
"
|
|
" For version 5.x: Clear all syntax items
|
|
" For version 6.x: Quit when a syntax file was already loaded
|
|
if version < 600
|
|
syntax clear
|
|
elseif exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" Handle monospaced blocks
|
|
syn region gmiMono start="```" end="```"
|
|
|
|
" Handle between one and three heading levels
|
|
syn match gmiHeader /^#\{1,3}.*$/
|
|
|
|
" Start a link line
|
|
syn match gmiLinkStart /^=>/ nextgroup=gmiLinkUrl skipwhite
|
|
|
|
" An extremely naive way of handling the URL portion of the link line
|
|
" This is left naive in a deliberate attempt to be unambiguous about
|
|
" what part of a link line gemini considers to be the URL, regardless
|
|
" of whether or not it is a valid URL
|
|
syn match gmiLinkUrl /\S\+/ contained nextgroup=gmiLinkTitle skipwhite
|
|
|
|
" Skipping whitespace from the URL match all text, including whitespace,
|
|
" until the end of the line
|
|
syn match gmiLinkTitle /.*$/ contained
|
|
|
|
" Handle list items
|
|
syn match gmiListItem /^\*.*$/
|
|
|
|
let b:current_syntax = "gmi"
|
|
|
|
hi def link gmiMono Special
|
|
hi def link gmiHeader Constant
|
|
hi def link gmiLinkStart Todo
|
|
hi def link gmiLinkUrl Underlined
|
|
hi def link gmiLinkTitle String
|
|
hi def link gmiListItem Identifier
|
|
|