2020-03-03 15:58:31 +00:00
|
|
|
" Vim syntax file
|
|
|
|
" " Language: gemini
|
|
|
|
" " Maintainer: sloum < sloum AT rawtext.club >
|
|
|
|
" " Latest Revision: 02 February 2020
|
|
|
|
|
2020-03-03 18:52:50 +00:00
|
|
|
"
|
|
|
|
" 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")
|
2020-03-03 15:58:31 +00:00
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
|
|
|
" Handle monospaced blocks
|
2020-03-03 18:52:50 +00:00
|
|
|
syn region gmiMono start="```" end="```"
|
2020-03-03 15:58:31 +00:00
|
|
|
|
|
|
|
" Handle between one and three heading levels
|
2020-03-03 18:52:50 +00:00
|
|
|
syn match gmiHeader /^#\{1,3}.*$/
|
2020-03-03 15:58:31 +00:00
|
|
|
|
|
|
|
" Start a link line
|
2020-03-03 18:52:50 +00:00
|
|
|
syn match gmiLinkStart /^=>/ nextgroup=gmiLinkUrl skipwhite
|
2020-03-03 15:58:31 +00:00
|
|
|
|
|
|
|
" An extremely naive way of handling the URL portion of the link line
|
|
|
|
" TODO think about improving this
|
2020-03-03 18:52:50 +00:00
|
|
|
syn match gmiLinkUrl /\S\+/ contained nextgroup=gmiLinkTitle skipwhite
|
2020-03-03 15:58:31 +00:00
|
|
|
|
2020-03-03 18:52:50 +00:00
|
|
|
syn match gmiLinkTitle /.*$/ contained
|
2020-03-03 15:58:31 +00:00
|
|
|
|
|
|
|
" Handle list items
|
2020-03-03 18:52:50 +00:00
|
|
|
syn match gmiListItem /^\*.*$/
|
2020-03-03 15:58:31 +00:00
|
|
|
|
2020-03-03 18:52:50 +00:00
|
|
|
let b:current_syntax = "gmi"
|
2020-03-03 15:58:31 +00:00
|
|
|
|
2020-03-03 18:52:50 +00:00
|
|
|
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
|
2020-03-03 15:58:31 +00:00
|
|
|
|