File: rx.vim

package info (click to toggle)
vim-link-vim 2.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 524 kB
  • sloc: python: 66; makefile: 30
file content (73 lines) | stat: -rw-r--r-- 3,287 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
" vint: -ProhibitImplicitScopeVariable

function! linkvim#rx#surrounded(word, chars) abort
  return '\%(^\|\s\|[[:punct:]]\)\zs'
        \ . escape(a:chars, '*')
        \ . a:word
        \ . escape(join(reverse(split(a:chars, '\zs')), ''), '*')
        \ . '\ze\%([[:punct:]]\|\s\|$\)'
endfunction

let linkvim#rx#word = '[^[:blank:]!"$%&''()*+,:;<=>?\[\]\\^`{}]\+'
let linkvim#rx#pre_beg = '^\s*```'
let linkvim#rx#pre_end = '^\s*```\s*$'
let linkvim#rx#super = '\^[^^`]\+\^'
let linkvim#rx#sub = ',,[^,`]\+,,'
let linkvim#rx#list_define = '::\%(\s\|$\)'
let linkvim#rx#comment = '^\s*%%.*$'
let linkvim#rx#todo = '\C\<\%(TODO\|STARTED\|FIXME\)\>:\?'
let linkvim#rx#done = '\C\<\%(OK\|DONE\|FIXED\)\>:\?'
let linkvim#rx#header_md_atx = '^#\{1,6}\s*[^#].*'
let linkvim#rx#header_md_atx_items = '^\(#\{1,6}\)\s*\([^#].*\)\s*$'
let linkvim#rx#header_org = '^\*\{1,6}\s*[^\*].*'
let linkvim#rx#header_org_items = '^\(\*\{1,6}\)\s*\([^\*].*\)\s*$'
let linkvim#rx#header_adoc = '^=\{1,6}\s*[^=].*'
let linkvim#rx#header_adoc_items = '^\(=\{1,6}\)\s*\([^=].*\)\s*$'
let linkvim#rx#bold = linkvim#rx#surrounded(
      \ '[^*`[:space:]]\%([^*`]*[^*`[:space:]]\)\?', '*')
let linkvim#rx#italic = linkvim#rx#surrounded(
      \ '[^_`[:space:]]\%([^_`]*[^_`[:space:]]\)\?', '_')
let linkvim#rx#date = '\d\d\d\d-\d\d-\d\d'
let linkvim#rx#url =
      \ '\%(\<\l\+:\%(\/\/\)\?[^ \t()\[\]|]\+[^ \t()\[\]|.,?!:;''"]'
      \ . '\|'
      \ . '<\zs\l\+:\%(\/\/\)\?[^>]\+\ze>\)'
" Match as few characters as possible, each of which is not \, [, or ].
let linkvim#rx#reftext = '[^\\\[\]]\{-}'
let linkvim#rx#reflabel = '\%(\d\+\|\a[-_. [:alnum:]]\+\|\^\w\+\)'
let linkvim#rx#link_adoc_link = '\<link:\%(\[[^]]\+\]\|[^[]\+\)\[[^]]*\]'
let linkvim#rx#link_adoc_xref_bracket = '<<[^>]\+>>'
let linkvim#rx#link_adoc_xref_inline = '\<xref:\%(\[[^]]\+\]\|[^[]\+\)\[[^]]*\]'
let linkvim#rx#link_md = '\[[^[\]]\{-}\]([^\\]\{-})'
let linkvim#rx#link_md_fig = '!' . linkvim#rx#link_md
let linkvim#rx#link_org = '\[\[\/\?[^\\\]]\{-}\]\%(\[[^\\\]]\{-}\]\)\?\]'
let linkvim#rx#link_reference = '[\]\[]\@<!\[' . linkvim#rx#reflabel . '\][\]\[]\@!'
let linkvim#rx#link_ref_collapsed = '[\]\[]\@<!\[' . linkvim#rx#reflabel . '\]\[\][\]\[]\@!'
let linkvim#rx#link_ref_full =
      \ '[\]\[]\@<!'
      \ . '\[' . linkvim#rx#reftext   . '\]'
      \ . '\[' . linkvim#rx#reflabel . '\]'
      \ . '[\]\[]\@!'
let linkvim#rx#url_ref_target = '\S\+' " MODIFIED
let linkvim#rx#link_ref_target =
      \ '^\s*\[' . linkvim#rx#reflabel . '\]:\s\+' . linkvim#rx#url_ref_target " MODIFIED
let linkvim#rx#link_cite = '\%(\s\|^\|\[\)\zs@[-_.+:a-zA-Z0-9]\+[-_a-zA-Z0-9]'
let linkvim#rx#link_cite_url = '\%(\s\|^\|\[\)@\zs[-_.+:a-zA-Z0-9]\+[-_a-zA-Z0-9]'
let linkvim#rx#link_wiki = '\[\[\/\?[^\\\]]\{-}\%(|[^\\\]]\{-}\)\?\]\]'

" Used in `linkvim#link#get_all_from_lines()`.
let linkvim#rx#link = join([
      \ linkvim#rx#link_wiki,
      \ linkvim#rx#link_adoc_link,
      \ linkvim#rx#link_adoc_xref_bracket,
      \ linkvim#rx#link_adoc_xref_inline,
      \ '!\?' . linkvim#rx#link_md,
      \ linkvim#rx#link_org,
      \ linkvim#rx#link_ref_target,
      \ linkvim#rx#link_reference,
      \ linkvim#rx#link_ref_full,
      \ linkvim#rx#url,
      \ linkvim#rx#link_cite,
      \], '\|')

" vint: +ProhibitImplicitScopeVariable