aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim
diff options
context:
space:
mode:
authorKumar Damani <damani.kumar@gmail.com>2019-04-26 18:49:26 +0000
committerKumar Damani <damani.kumar@gmail.com>2019-04-26 18:49:26 +0000
commit5a6ed5fcb3b89d0c2b4e8ba2953c4ba806d4b171 (patch)
tree5be0c043b0c8d632e35a8b4ef7e23452b103b94d /vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim
parentaf821092fe78ef159d7cb6536bb006712dc01b9d (diff)
added vim dir
Diffstat (limited to 'vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim')
-rw-r--r--vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim194
1 files changed, 194 insertions, 0 deletions
diff --git a/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim b/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim
new file mode 100644
index 0000000..46f3ce1
--- /dev/null
+++ b/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+function! s:add_target_syntax_ON(target, type)
+ let prefix0 = 'syntax match '.a:type.' `'
+ let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
+ let prefix1 = 'syntax match '.a:type.'T `'
+ let suffix1 = '` display contained'
+ execute prefix0. a:target. suffix0
+ execute prefix1. a:target. suffix1
+endfunction
+
+
+function! s:add_target_syntax_OFF(target, type)
+ let prefix0 = 'syntax match VimwikiNoExistsLink `'
+ let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
+ let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
+ let suffix1 = '` display contained'
+ execute prefix0. a:target. suffix0
+ execute prefix1. a:target. suffix1
+endfunction
+
+
+function! s:wrap_wikilink1_rx(target)
+ return vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidPrefix') . a:target.
+ \ vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidSuffix')
+endfunction
+
+
+function! s:existing_mkd_refs()
+ return keys(vimwiki#markdown_base#scan_reflinks())
+endfunction
+
+
+function! s:highlight_existing_links()
+ " Wikilink1
+ " Conditional highlighting that depends on the existence of a wiki file or
+ " directory is only available for *schemeless* wiki links
+ " Links are set up upon BufEnter (see plugin/...)
+ let safe_links = '\%('.
+ \ vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikifiles')) .
+ \ '\%(#[^|]*\)\?\|#[^|]*\)'
+ " Wikilink1 Dirs set up upon BufEnter (see plugin/...)
+ let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
+ " Ref links are cached
+ let safe_reflinks = vimwiki#base#file_pattern(s:existing_mkd_refs())
+
+
+ " match [URL][]
+ let target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
+ \ safe_links, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+ " match [DESCRIPTION][URL]
+ let target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
+ \ safe_links, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+
+ " match [DIRURL][]
+ let target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
+ \ safe_dirs, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+ " match [DESCRIPTION][DIRURL]
+ let target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
+ \ safe_dirs, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+
+ " match [MKDREF][]
+ let target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
+ \ safe_reflinks, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+ " match [DESCRIPTION][MKDREF]
+ let target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
+ \ safe_reflinks, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+endfunction
+
+
+" use max highlighting - could be quite slow if there are too many wikifiles
+if vimwiki#vars#get_wikilocal('maxhi')
+ " WikiLink
+ call s:add_target_syntax_OFF(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), 'VimwikiWikiLink1')
+
+ " Subsequently, links verified on vimwiki's path are highlighted as existing
+ call s:highlight_existing_links()
+else
+ " Wikilink
+ call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), 'VimwikiWikiLink1')
+endif
+
+
+" Weblink
+call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink1'), 'VimwikiWeblink1')
+
+
+" WikiLink
+" All remaining schemes are highlighted automatically
+let s:rxSchemes = '\%('.
+ \ vimwiki#vars#get_global('schemes') . '\|'.
+ \ vimwiki#vars#get_global('web_schemes1').
+ \ '\):'
+
+" a) match [nonwiki-scheme-URL]
+let s:target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
+ \ s:rxSchemes . vimwiki#vars#get_syntaxlocal('rxWikiLink1Url'),
+ \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+call s:add_target_syntax_ON(s:wrap_wikilink1_rx(s:target), 'VimwikiWikiLink1')
+" b) match [DESCRIPTION][nonwiki-scheme-URL]
+let s:target = vimwiki#base#apply_template(
+ \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
+ \ s:rxSchemes . vimwiki#vars#get_syntaxlocal('rxWikiLink1Url'),
+ \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
+call s:add_target_syntax_ON(s:wrap_wikilink1_rx(s:target), 'VimwikiWikiLink1')
+
+
+
+" Header levels, 1-6
+for s:i in range(1,6)
+ execute 'syntax match VimwikiHeader'.s:i.' /'.vimwiki#vars#get_syntaxlocal('rxH'.s:i).
+ \ '/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,'.
+ \ 'VimwikiLink,VimwikiWeblink1,VimwikiWikiLink1,@Spell'
+endfor
+
+
+
+" concealed chars
+if exists("+conceallevel")
+ syntax conceal on
+endif
+
+syntax spell toplevel
+
+" VimwikiWikiLink1Char is for syntax markers (and also URL when a description
+" is present) and may be concealed
+let s:options = ' contained transparent contains=NONE'
+" conceal wikilink1
+execute 'syn match VimwikiWikiLink1Char /'.
+ \ vimwiki#vars#get_syntaxlocal('rx_wikilink_md_prefix').'/'.s:options
+execute 'syn match VimwikiWikiLink1Char /'.
+ \ vimwiki#vars#get_syntaxlocal('rx_wikilink_md_suffix').'/'.s:options
+execute 'syn match VimwikiWikiLink1Char /'.
+ \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Prefix1').'/'.s:options
+execute 'syn match VimwikiWikiLink1Char /'.
+ \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Suffix1').'/'.s:options
+
+" conceal weblink1
+execute 'syn match VimwikiWeblink1Char "'.
+ \ vimwiki#vars#get_syntaxlocal('rxWeblink1Prefix1').'"'.s:options
+execute 'syn match VimwikiWeblink1Char "'.
+ \ vimwiki#vars#get_syntaxlocal('rxWeblink1Suffix1').'"'.s:options
+
+if exists("+conceallevel")
+ syntax conceal off
+endif
+
+
+
+" Tables
+syntax match VimwikiTableRow /^\s*|.\+|\s*$/
+ \ transparent contains=VimwikiCellSeparator,
+ \ VimwikiLinkT,
+ \ VimwikiWeblink1T,
+ \ VimwikiWikiLink1T,
+ \ VimwikiNoExistsLinkT,
+ \ VimwikiTodo,
+ \ VimwikiBoldT,
+ \ VimwikiItalicT,
+ \ VimwikiBoldItalicT,
+ \ VimwikiItalicBoldT,
+ \ VimwikiDelTextT,
+ \ VimwikiSuperScriptT,
+ \ VimwikiSubScriptT,
+ \ VimwikiCodeT,
+ \ VimwikiEqInT,
+ \ @Spell
+
+
+
+" syntax group highlighting
+hi def link VimwikiWeblink1 VimwikiLink
+hi def link VimwikiWeblink1T VimwikiLink
+
+hi def link VimwikiWikiLink1 VimwikiLink
+hi def link VimwikiWikiLink1T VimwikiLink
+