Initial commit

This commit is contained in:
Alex Vear
2018-12-08 22:40:13 +00:00
commit 0406612877
5 changed files with 143 additions and 0 deletions

90
syntax/org.vim Normal file
View File

@@ -0,0 +1,90 @@
" =============================================================
" Description: Basic Org-mode syntax highlighting
" Author: Alex Vear (axvr)
" Licence: ISC (2018)
" =============================================================
if exists("b:current_syntax")
finish
endif
" FIXME spell checking does not work on standard lines.
syntax region orgItalic matchgroup=orgItalicDelimiter start="\S\@<=\/\|\/\S\@=" end="\S\@<=\/\|\/\S\@=" keepend contains=@Spell concealends oneline
syntax region orgBold matchgroup=orgBoldDelimiter start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=@Spell concealends oneline
syntax region orgUnderline matchgroup=orgUnderlineDelimiter start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=@Spell concealends oneline
syntax region orgStrikethrough start="\S\@<=+\|+\S\@=" end="\S\@<=+\|+\S\@=" keepend contains=@Spell concealends oneline
syntax match orgOption /^\s*#+\w\+.*$/ keepend
syntax region orgTitle matchgroup=orgOption start="^\s*#+TITLE:\s*" end="$" keepend oneline
syntax region orgCode matchgroup=orgCodeDelimiter start="\S\@<==\|=\S\@=" end="\S\@<==\|=\S\@=" keepend concealends oneline
syntax region orgVerbatim matchgroup=orgVerbatimDelimiter start="\S\@<=\~\|\~\S\@=" end="\S\@<=\~\|\~\S\@=" keepend concealends oneline
syntax match orgVerbatim /^\s*: .*$/ keepend
syntax region orgVerbatim matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_.*" end="^\s*#+END_.*" keepend
syntax region orgCode matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_SRC" end="^\s*#+END_SRC" keepend
syntax region orgCode matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_EXAMPLE" end="^\s*#+END_EXAMPLE" keepend
" Comments
syntax match orgComment /^\s*#\s\+.*$/ keepend
syntax region orgComment matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_COMMENT" end="^\s*#+END_COMMENT" keepend
highlight def link orgComment Comment
" Headings
syntax match orgHeading1 /^\s*\*\{1}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
syntax match orgHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
syntax match orgHeading3 /^\s*\*\{3}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
syntax match orgHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
syntax match orgHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
syntax match orgHeading6 /^\s*\*\{6}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
syntax match orgTag /:\w\{-}:/ contained contains=orgTag
syntax keyword orgTodo contained TODO NEXT DONE
" Timestamp
syntax match orgTimestamp /<\d\{4}-\d\{2}-\d\{2}.\{-}>/ keepend
highlight def link orgTimestamp Operator
" FIXME Hyperlinks
" - Highlight a link without formatting
" - Fix issues with italics
syntax match orgHyperlink "\[\{2}[^][]*\(\]\[[^][]*\)\?\]\{2}" contains=orgHyperlinkBracketsLeft,orgHyperlinkURL,orgHyperlinkBracketsRight containedin=ALL
syntax match orgHyperlinkBracketsLeft contained "\[\{2}#\?" conceal
syntax match orgHyperlinkURL contained "[^][]*\]\[" conceal
syntax match orgHyperlinkBracketsRight contained "\]\{2}" conceal
highlight def link orgHyperlink Underlined
" TODO Tables
highlight def orgItalic term=italic cterm=italic gui=italic
highlight def orgBold term=bold cterm=bold gui=bold
highlight def orgUnderline term=underline cterm=underline gui=underline
highlight def link orgItalicDelimiter orgItalic
highlight def link orgBoldDelimiter orgBold
highlight def link orgUnderlineDelimiter orgUnderline
highlight def link orgHeading1 htmlH1
highlight def link orgHeading2 htmlH2
highlight def link orgHeading3 htmlH3
highlight def link orgHeading4 htmlH4
highlight def link orgHeading5 htmlH5
highlight def link orgHeading6 htmlH6
highlight def link orgTodo Todo
highlight def link orgTag Constant
highlight def link orgVerbatim Delimiter
highlight def link orgVerbatimDelimiter orgVerbatim
highlight def link orgCode Statement
highlight def link orgCodeDelimiter orgCode
highlight def link orgBlockDelimiter SpecialComment
highlight def link orgOption Constant
highlight def link orgTitle Function
let b:current_syntax = 'org'