summaryrefslogtreecommitdiffstats
path: root/autoload/vimtex/util.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-05-20 20:19:03 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2020-05-20 20:19:03 +0200
commita9cc6fd2188ddc37257c834b6f5a5fa86d0eebd5 (patch)
tree952fc9cf50a5f4c42ffb2b1c0077155bcda3e7c1 /autoload/vimtex/util.vim
parent3c47f192b5758222a1e8055c7e08650e05d0d171 (diff)
downloadvim-polyglot-a9cc6fd2188ddc37257c834b6f5a5fa86d0eebd5.tar.gz
vim-polyglot-a9cc6fd2188ddc37257c834b6f5a5fa86d0eebd5.zip
Remove latex, fixes #484
Diffstat (limited to 'autoload/vimtex/util.vim')
-rw-r--r--autoload/vimtex/util.vim273
1 files changed, 0 insertions, 273 deletions
diff --git a/autoload/vimtex/util.vim b/autoload/vimtex/util.vim
deleted file mode 100644
index eccf466e..00000000
--- a/autoload/vimtex/util.vim
+++ /dev/null
@@ -1,273 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1
-
-" vimtex - LaTeX plugin for Vim
-"
-" Maintainer: Karl Yngve Lervåg
-" Email: karl.yngve@gmail.com
-"
-
-function! vimtex#util#command(cmd) abort " {{{1
- let l:a = @a
- try
- silent! redir @a
- silent! execute a:cmd
- redir END
- finally
- let l:res = @a
- let @a = l:a
- return split(l:res, "\n")
- endtry
-endfunction
-
-" }}}1
-function! vimtex#util#flatten(list) abort " {{{1
- let l:result = []
-
- for l:element in a:list
- if type(l:element) == type([])
- call extend(l:result, vimtex#util#flatten(l:element))
- else
- call add(l:result, l:element)
- endif
- unlet l:element
- endfor
-
- return l:result
-endfunction
-
-" }}}1
-function! vimtex#util#get_os() abort " {{{1
- if has('win32') || has('win32unix')
- return 'win'
- elseif has('unix')
- if has('mac') || system('uname') =~# 'Darwin'
- return 'mac'
- else
- return 'linux'
- endif
- endif
-endfunction
-
-" }}}1
-function! vimtex#util#in_comment(...) abort " {{{1
- return call('vimtex#util#in_syntax', ['texComment'] + a:000)
-endfunction
-
-" }}}1
-function! vimtex#util#in_mathzone(...) abort " {{{1
- return call('vimtex#util#in_syntax', ['texMathZone'] + a:000)
-endfunction
-
-" }}}1
-function! vimtex#util#in_syntax(name, ...) abort " {{{1
-
- " Usage: vimtex#util#in_syntax(name, [line, col])
-
- " Get position and correct it if necessary
- let l:pos = a:0 > 0 ? [a:1, a:2] : [line('.'), col('.')]
- if mode() ==# 'i'
- let l:pos[1] -= 1
- endif
- call map(l:pos, 'max([v:val, 1])')
-
- " Check syntax at position
- return match(map(synstack(l:pos[0], l:pos[1]),
- \ "synIDattr(v:val, 'name')"),
- \ '^' . a:name) >= 0
-endfunction
-
-" }}}1
-function! vimtex#util#extend_recursive(dict1, dict2, ...) abort " {{{1
- let l:option = a:0 > 0 ? a:1 : 'force'
- if index(['force', 'keep', 'error'], l:option) < 0
- throw 'E475: Invalid argument: ' . l:option
- endif
-
- for [l:key, l:value] in items(a:dict2)
- if !has_key(a:dict1, l:key)
- let a:dict1[l:key] = l:value
- elseif type(l:value) == type({})
- call vimtex#util#extend_recursive(a:dict1[l:key], l:value, l:option)
- elseif l:option ==# 'error'
- throw 'E737: Key already exists: ' . l:key
- elseif l:option ==# 'force'
- let a:dict1[l:key] = l:value
- endif
- unlet l:value
- endfor
-
- return a:dict1
-endfunction
-
-" }}}1
-function! vimtex#util#shellescape(cmd) abort " {{{1
- "
- " Path used in "cmd" only needs to be enclosed by double quotes.
- " shellescape() on Windows with "shellslash" set will produce a path
- " enclosed by single quotes, which "cmd" does not recognize and reports an
- " error.
- "
- if has('win32')
- let l:shellslash = &shellslash
- set noshellslash
- let l:cmd = escape(shellescape(a:cmd), '\')
- let &shellslash = l:shellslash
- return l:cmd
- else
- return escape(shellescape(a:cmd), '\')
- endif
-endfunction
-
-" }}}1
-function! vimtex#util#tex2unicode(line) abort " {{{1
- " Convert compositions to unicode
- let l:line = a:line
- for [l:pat, l:symbol] in s:tex2unicode_list
- let l:line = substitute(l:line, l:pat, l:symbol, 'g')
- endfor
-
- " Remove the \IeC macro
- let l:line = substitute(l:line, '\\IeC\s*{\s*\([^}]\{-}\)\s*}', '\1', 'g')
-
- return l:line
-endfunction
-
-"
-" Define list for converting compositions like \"u to unicode ű
-let s:tex2unicode_list = [
- \ ['\\''A', 'Á'],
- \ ['\\`A', 'À'],
- \ ['\\^A', 'À'],
- \ ['\\¨A', 'Ä'],
- \ ['\\"A', 'Ä'],
- \ ['\\''a', 'á'],
- \ ['\\`a', 'à'],
- \ ['\\^a', 'à'],
- \ ['\\¨a', 'ä'],
- \ ['\\"a', 'ä'],
- \ ['\\\~a', 'ã'],
- \ ['\\''E', 'É'],
- \ ['\\`E', 'È'],
- \ ['\\^E', 'Ê'],
- \ ['\\¨E', 'Ë'],
- \ ['\\"E', 'Ë'],
- \ ['\\''e', 'é'],
- \ ['\\`e', 'è'],
- \ ['\\^e', 'ê'],
- \ ['\\¨e', 'ë'],
- \ ['\\"e', 'ë'],
- \ ['\\''I', 'Í'],
- \ ['\\`I', 'Î'],
- \ ['\\^I', 'Ì'],
- \ ['\\¨I', 'Ï'],
- \ ['\\"I', 'Ï'],
- \ ['\\''i', 'í'],
- \ ['\\`i', 'î'],
- \ ['\\^i', 'ì'],
- \ ['\\¨i', 'ï'],
- \ ['\\"i', 'ï'],
- \ ['\\''i', 'í'],
- \ ['\\''O', 'Ó'],
- \ ['\\`O', 'Ò'],
- \ ['\\^O', 'Ô'],
- \ ['\\¨O', 'Ö'],
- \ ['\\"O', 'Ö'],
- \ ['\\''o', 'ó'],
- \ ['\\`o', 'ò'],
- \ ['\\^o', 'ô'],
- \ ['\\¨o', 'ö'],
- \ ['\\"o', 'ö'],
- \ ['\\o', 'ø'],
- \ ['\\''U', 'Ú'],
- \ ['\\`U', 'Ù'],
- \ ['\\^U', 'Û'],
- \ ['\\¨U', 'Ü'],
- \ ['\\"U', 'Ü'],
- \ ['\\''u', 'ú'],
- \ ['\\`u', 'ù'],
- \ ['\\^u', 'û'],
- \ ['\\¨u', 'ü'],
- \ ['\\"u', 'ü'],
- \ ['\\`N', 'Ǹ'],
- \ ['\\\~N', 'Ñ'],
- \ ['\\''n', 'ń'],
- \ ['\\`n', 'ǹ'],
- \ ['\\\~n', 'ñ'],
- \]
-
-" }}}1
-function! vimtex#util#tex2tree(str) abort " {{{1
- let tree = []
- let i1 = 0
- let i2 = -1
- let depth = 0
- while i2 < len(a:str)
- let i2 = match(a:str, '[{}]', i2 + 1)
- if i2 < 0
- let i2 = len(a:str)
- endif
- if i2 >= len(a:str) || a:str[i2] ==# '{'
- if depth == 0
- let item = substitute(strpart(a:str, i1, i2 - i1),
- \ '^\s*\|\s*$', '', 'g')
- if !empty(item)
- call add(tree, item)
- endif
- let i1 = i2 + 1
- endif
- let depth += 1
- else
- let depth -= 1
- if depth == 0
- call add(tree, vimtex#util#tex2tree(strpart(a:str, i1, i2 - i1)))
- let i1 = i2 + 1
- endif
- endif
- endwhile
- return tree
-endfunction
-
-" }}}1
-function! vimtex#util#trim(str) abort " {{{1
- if exists('*trim') | return trim(a:str) | endif
-
- let l:str = substitute(a:str, '^\s*', '', '')
- let l:str = substitute(l:str, '\s*$', '', '')
-
- return l:str
-endfunction
-
-" }}}1
-function! vimtex#util#uniq(list) abort " {{{1
- if exists('*uniq') | return uniq(a:list) | endif
- if len(a:list) <= 1 | return a:list | endif
-
- let l:uniq = [a:list[0]]
- for l:next in a:list[1:]
- if l:uniq[-1] != l:next
- call add(l:uniq, l:next)
- endif
- endfor
- return l:uniq
-endfunction
-
-" }}}1
-function! vimtex#util#uniq_unsorted(list) abort " {{{1
- if len(a:list) <= 1 | return a:list | endif
-
- let l:visited = {}
- let l:result = []
- for l:x in a:list
- let l:key = string(l:x)
- if !has_key(l:visited, l:key)
- let l:visited[l:key] = 1
- call add(l:result, l:x)
- endif
- endfor
-
- return l:result
-endfunction
-
-" }}}1
-
-endif