summaryrefslogtreecommitdiffstats
path: root/autoload
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2018-10-08 19:00:59 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2018-10-08 19:00:59 +0200
commitfd74d8b2b170b540680a9bbf6c64990f8ebafd08 (patch)
treeb1fdef6203a78a21053d1b8e0666ab7a38c36df2 /autoload
parent055f7710b65dfa2df52fc0b5be2486ae36ac5751 (diff)
downloadvim-polyglot-3.3.3.tar.gz
vim-polyglot-3.3.3.zip
Updatev3.3.3
Diffstat (limited to 'autoload')
-rw-r--r--autoload/crystal_lang.vim4
-rw-r--r--autoload/elixir/indent.vim327
-rw-r--r--autoload/go/config.vim18
-rw-r--r--autoload/julia/doc.vim246
-rw-r--r--autoload/julia_blocks.vim4
-rw-r--r--autoload/julia_latex_symbols.vim2295
-rw-r--r--autoload/rubycomplete.vim35
-rw-r--r--autoload/rust.vim91
-rw-r--r--autoload/rust/debugging.vim1
-rw-r--r--autoload/rust/delimitmate.vim48
-rw-r--r--autoload/rustfmt.vim142
11 files changed, 1773 insertions, 1438 deletions
diff --git a/autoload/crystal_lang.vim b/autoload/crystal_lang.vim
index aaf626cf..bffa721f 100644
--- a/autoload/crystal_lang.vim
+++ b/autoload/crystal_lang.vim
@@ -310,6 +310,10 @@ function! crystal_lang#format(option_str, ...) abort
call setpos('.', pos_save)
endfunction
+function! crystal_lang#expand(file, pos, ...) abort
+ return crystal_lang#tool('expand', a:file, a:pos, get(a:, 1, ''))
+endfunction
+
let &cpo = s:save_cpo
unlet s:save_cpo
diff --git a/autoload/elixir/indent.vim b/autoload/elixir/indent.vim
index aca5a2fd..20271ac5 100644
--- a/autoload/elixir/indent.vim
+++ b/autoload/elixir/indent.vim
@@ -23,22 +23,18 @@ function! elixir#indent#indent(lnum)
let handlers = [
\'top_of_file',
- \'starts_with_end',
- \'starts_with_mid_or_end_block_keyword',
- \'following_trailing_do',
- \'following_trailing_rocket',
\'following_trailing_binary_operator',
\'starts_with_pipe',
- \'starts_with_close_bracket',
\'starts_with_binary_operator',
- \'inside_nested_construct',
- \'starts_with_comment',
+ \'inside_block',
+ \'starts_with_end',
\'inside_generic_block',
\'follow_prev_nb'
\]
for handler in handlers
call s:debug('testing handler elixir#indent#handle_'.handler)
- let indent = function('elixir#indent#handle_'.handler)(lnum, text, prev_nb_lnum, prev_nb_text)
+ let context = {'lnum': lnum, 'text': text, 'prev_nb_lnum': prev_nb_lnum, 'prev_nb_text': prev_nb_text}
+ let indent = function('elixir#indent#handle_'.handler)(context)
if indent != -1
call s:debug('line '.lnum.': elixir#indent#handle_'.handler.' returned '.indent)
call cursor(curs_lnum, curs_col)
@@ -57,9 +53,17 @@ function! s:debug(str)
endif
endfunction
+function! s:starts_with(context, expr)
+ return s:_starts_with(a:context.text, a:expr, a:context.lnum)
+endfunction
+
+function! s:prev_starts_with(context, expr)
+ return s:_starts_with(a:context.prev_nb_text, a:expr, a:context.prev_nb_lnum)
+endfunction
+
" Returns 0 or 1 based on whether or not the text starts with the given
" expression and is not a string or comment
-function! s:starts_with(text, expr, lnum)
+function! s:_starts_with(text, expr, lnum)
let pos = match(a:text, '^\s*'.a:expr)
if pos == -1
return 0
@@ -74,9 +78,13 @@ function! s:starts_with(text, expr, lnum)
end
endfunction
+function! s:prev_ends_with(context, expr)
+ return s:_ends_with(a:context.prev_nb_text, a:expr, a:context.prev_nb_lnum)
+endfunction
+
" Returns 0 or 1 based on whether or not the text ends with the given
" expression and is not a string or comment
-function! s:ends_with(text, expr, lnum)
+function! s:_ends_with(text, expr, lnum)
let pos = match(a:text, a:expr.'\s*$')
if pos == -1
return 0
@@ -140,16 +148,16 @@ function! s:find_last_pos(lnum, text, match)
return -1
endfunction
-function! elixir#indent#handle_top_of_file(_lnum, _text, prev_nb_lnum, _prev_nb_text)
- if a:prev_nb_lnum == 0
+function! elixir#indent#handle_top_of_file(context)
+ if a:context.prev_nb_lnum == 0
return 0
else
return -1
end
endfunction
-function! elixir#indent#handle_follow_prev_nb(_lnum, _text, prev_nb_lnum, prev_nb_text)
- return s:get_base_indent(a:prev_nb_lnum, a:prev_nb_text)
+function! elixir#indent#handle_follow_prev_nb(context)
+ return s:get_base_indent(a:context.prev_nb_lnum, a:context.prev_nb_text)
endfunction
" Given the line at `lnum`, returns the indent of the line that acts as the 'base indent'
@@ -163,13 +171,13 @@ function! s:get_base_indent(lnum, text)
let data_structure_close = '\%(\]\|}\|)\)'
let pipe = '|>'
- if s:starts_with(a:text, binary_operator, a:lnum)
+ if s:_starts_with(a:text, binary_operator, a:lnum)
return s:get_base_indent(prev_nb_lnum, prev_nb_text)
- elseif s:starts_with(a:text, pipe, a:lnum)
+ elseif s:_starts_with(a:text, pipe, a:lnum)
return s:get_base_indent(prev_nb_lnum, prev_nb_text)
- elseif s:ends_with(prev_nb_text, binary_operator, prev_nb_lnum)
+ elseif s:_ends_with(prev_nb_text, binary_operator, prev_nb_lnum)
return s:get_base_indent(prev_nb_lnum, prev_nb_text)
- elseif s:ends_with(a:text, data_structure_close, a:lnum)
+ elseif s:_ends_with(a:text, data_structure_close, a:lnum)
let data_structure_open = '\%(\[\|{\|(\)'
let close_match_idx = match(a:text, data_structure_close . '\s*$')
call cursor(a:lnum, close_match_idx + 1)
@@ -181,54 +189,26 @@ function! s:get_base_indent(lnum, text)
endif
endfunction
-function! elixir#indent#handle_following_trailing_do(lnum, text, prev_nb_lnum, prev_nb_text)
- if s:ends_with(a:prev_nb_text, s:keyword('do'), a:prev_nb_lnum)
- if s:starts_with(a:text, s:keyword('end'), a:lnum)
- return indent(a:prev_nb_lnum)
- else
- return indent(a:prev_nb_lnum) + s:sw()
- end
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_following_trailing_rocket(lnum, text, prev_nb_lnum, prev_nb_text)
- if s:ends_with(a:prev_nb_text, '->', a:prev_nb_lnum)
- return indent(a:prev_nb_lnum) + s:sw()
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_following_trailing_binary_operator(lnum, text, prev_nb_lnum, prev_nb_text)
+function! elixir#indent#handle_following_trailing_binary_operator(context)
let binary_operator = '\%(=\|<>\|>>>\|<=\|||\|+\|\~\~\~\|-\|&&\|<<<\|/\|\^\^\^\|\*\)'
- if s:ends_with(a:prev_nb_text, binary_operator, a:prev_nb_lnum)
- return indent(a:prev_nb_lnum) + s:sw()
+ if s:prev_ends_with(a:context, binary_operator)
+ return indent(a:context.prev_nb_lnum) + s:sw()
else
return -1
endif
endfunction
-function! elixir#indent#handle_following_prev_end(_lnum, _text, prev_nb_lnum, prev_nb_text)
- if s:ends_with(a:prev_nb_text, s:keyword('end'), a:prev_nb_lnum)
- return indent(a:prev_nb_lnum)
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_starts_with_pipe(lnum, text, prev_nb_lnum, prev_nb_text)
- if s:starts_with(a:text, '|>', a:lnum)
+function! elixir#indent#handle_starts_with_pipe(context)
+ if s:starts_with(a:context, '|>')
let match_operator = '\%(!\|=\|<\|>\)\@<!=\%(=\|>\|\~\)\@!'
- let pos = s:find_last_pos(a:prev_nb_lnum, a:prev_nb_text, match_operator)
+ let pos = s:find_last_pos(a:context.prev_nb_lnum, a:context.prev_nb_text, match_operator)
if pos == -1
- return indent(a:prev_nb_lnum)
+ return indent(a:context.prev_nb_lnum)
else
- let next_word_pos = match(strpart(a:prev_nb_text, pos+1, len(a:prev_nb_text)-1), '\S')
+ let next_word_pos = match(strpart(a:context.prev_nb_text, pos+1, len(a:context.prev_nb_text)-1), '\S')
if next_word_pos == -1
- return indent(a:prev_nb_lnum) + s:sw()
+ return indent(a:context.prev_nb_lnum) + s:sw()
else
return pos + 1 + next_word_pos
end
@@ -238,16 +218,8 @@ function! elixir#indent#handle_starts_with_pipe(lnum, text, prev_nb_lnum, prev_n
endif
endfunction
-function! elixir#indent#handle_starts_with_comment(_lnum, text, prev_nb_lnum, _prev_nb_text)
- if match(a:text, '^\s*#') != -1
- return indent(a:prev_nb_lnum)
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_starts_with_end(lnum, text, _prev_nb_lnum, _prev_nb_text)
- if s:starts_with(a:text, s:keyword('end'), a:lnum)
+function! elixir#indent#handle_starts_with_end(context)
+ if s:starts_with(a:context, s:keyword('end'))
let pair_lnum = searchpair(s:keyword('do\|fn'), '', s:keyword('end').'\zs', 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()")
return indent(pair_lnum)
else
@@ -255,36 +227,18 @@ function! elixir#indent#handle_starts_with_end(lnum, text, _prev_nb_lnum, _prev_
endif
endfunction
-function! elixir#indent#handle_starts_with_mid_or_end_block_keyword(lnum, text, _prev_nb_lnum, _prev_nb_text)
- if s:starts_with(a:text, s:keyword('catch\|rescue\|after\|else'), a:lnum)
- let pair_lnum = searchpair(s:keyword('with\|receive\|try\|if\|fn'), s:keyword('catch\|rescue\|after\|else').'\zs', s:keyword('end'), 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()")
- return indent(pair_lnum)
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_starts_with_close_bracket(lnum, text, _prev_nb_lnum, _prev_nb_text)
- if s:starts_with(a:text, '\%(\]\|}\|)\)', a:lnum)
- let pair_lnum = searchpair('\%(\[\|{\|(\)', '', '\%(\]\|}\|)\)', 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()")
- return indent(pair_lnum)
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_starts_with_binary_operator(lnum, text, prev_nb_lnum, prev_nb_text)
+function! elixir#indent#handle_starts_with_binary_operator(context)
let binary_operator = '\%(=\|<>\|>>>\|<=\|||\|+\|\~\~\~\|-\|&&\|<<<\|/\|\^\^\^\|\*\)'
- if s:starts_with(a:text, binary_operator, a:lnum)
+ if s:starts_with(a:context, binary_operator)
let match_operator = '\%(!\|=\|<\|>\)\@<!=\%(=\|>\|\~\)\@!'
- let pos = s:find_last_pos(a:prev_nb_lnum, a:prev_nb_text, match_operator)
+ let pos = s:find_last_pos(a:context.prev_nb_lnum, a:context.prev_nb_text, match_operator)
if pos == -1
- return indent(a:prev_nb_lnum)
+ return indent(a:context.prev_nb_lnum)
else
- let next_word_pos = match(strpart(a:prev_nb_text, pos+1, len(a:prev_nb_text)-1), '\S')
+ let next_word_pos = match(strpart(a:context.prev_nb_text, pos+1, len(a:context.prev_nb_text)-1), '\S')
if next_word_pos == -1
- return indent(a:prev_nb_lnum) + s:sw()
+ return indent(a:context.prev_nb_lnum) + s:sw()
else
return pos + 1 + next_word_pos
end
@@ -298,162 +252,89 @@ endfunction
" nested structure. For example, we might be in a function in a map in a
" function, etc... so we need to first figure out what the innermost structure
" is then forward execution to the proper handler
-function! elixir#indent#handle_inside_nested_construct(lnum, text, prev_nb_lnum, prev_nb_text)
+function! elixir#indent#handle_inside_block(context)
let start_pattern = '\C\%(\<with\>\|\<if\>\|\<case\>\|\<cond\>\|\<try\>\|\<receive\>\|\<fn\>\|{\|\[\|(\)'
let end_pattern = '\C\%(\<end\>\|\]\|}\|)\)'
- let pair_info = searchpairpos(start_pattern, '', end_pattern, 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()", max([0, a:lnum - g:elixir_indent_max_lookbehind]))
- let pair_lnum = pair_info[0]
- let pair_col = pair_info[1]
- if pair_lnum != 0 || pair_col != 0
- let pair_text = getline(pair_lnum)
- let pair_char = pair_text[pair_col - 1]
- if pair_char == 'f'
- call s:debug("testing s:do_handle_inside_fn")
- return s:do_handle_inside_fn(pair_lnum, pair_col, a:lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
- elseif pair_char == '['
- call s:debug("testing s:do_handle_inside_square_brace")
- return s:do_handle_inside_square_brace(pair_lnum, pair_col, a:lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
- elseif pair_char == '{'
- call s:debug("testing s:do_handle_inside_curly_brace")
- return s:do_handle_inside_curly_brace(pair_lnum, pair_col, a:lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
- elseif pair_char == '('
- call s:debug("testing s:do_handle_inside_parens")
- return s:do_handle_inside_parens(pair_lnum, pair_col, a:lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
- elseif pair_char == 'w'
- call s:debug("testing s:do_handle_inside_with")
- return s:do_handle_inside_with(pair_lnum, pair_col, a:lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
+ " hack - handle do: better
+ let block_info = searchpairpos(start_pattern, '', end_pattern, 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip() || getline(line('.')) =~ 'do:'", max([0, a:context.lnum - g:elixir_indent_max_lookbehind]))
+ let block_start_lnum = block_info[0]
+ let block_start_col = block_info[1]
+ if block_start_lnum != 0 || block_start_col != 0
+ let block_text = getline(block_start_lnum)
+ let block_start_char = block_text[block_start_col - 1]
+
+ let never_match = '\(a\)\@=b'
+ let config = {
+ \'f': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match},
+ \'c': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match},
+ \'t': {'aligned_clauses': s:keyword('end\|catch\|rescue\|after'), 'pattern_match_clauses': s:keyword('catch\|rescue')},
+ \'r': {'aligned_clauses': s:keyword('end\|after'), 'pattern_match_clauses': s:keyword('after')},
+ \'i': {'aligned_clauses': s:keyword('end\|else'), 'pattern_match_clauses': never_match},
+ \'[': {'aligned_clauses': ']', 'pattern_match_clauses': never_match},
+ \'{': {'aligned_clauses': '}', 'pattern_match_clauses': never_match},
+ \'(': {'aligned_clauses': ')', 'pattern_match_clauses': never_match}
+ \}
+
+ if block_start_char == 'w'
+ call s:debug("testing s:handle_with")
+ return s:handle_with(block_start_lnum, block_start_col, a:context)
else
- call s:debug("testing s:do_handle_inside_keyword_block")
- return s:do_handle_inside_keyword_block(pair_lnum, pair_col, a:lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
+ let block_config = config[block_start_char]
+ if s:starts_with(a:context, block_config.aligned_clauses)
+ call s:debug("clause")
+ return indent(block_start_lnum)
+ else
+ let clause_lnum = searchpair(block_config.pattern_match_clauses, '', '*', 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()", block_start_lnum)
+ let relative_lnum = max([clause_lnum, block_start_lnum])
+ call s:debug("pattern matching relative to lnum " . relative_lnum)
+ return s:do_handle_pattern_match_block(relative_lnum, a:context)
+ endif
end
else
return -1
end
endfunction
-function! s:do_handle_inside_with(pair_lnum, pair_col, lnum, text, prev_nb_lnum, prev_nb_text)
- if a:pair_lnum == a:lnum
- " This is the `with` line or an inline `with`/`do`
- call s:debug("current line is `with`")
- return -1
- else
- " Determine if in with/do, do/else|end, or else/end
- let start_pattern = '\C\%(\<with\>\|\<else\>\|\<do\>\)'
- let end_pattern = '\C\%(\<end\>\)'
- let pair_info = searchpairpos(start_pattern, '', end_pattern, 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()")
- let pair_lnum = pair_info[0]
- let pair_col = pair_info[1]
-
- let pair_text = getline(pair_lnum)
- let pair_char = pair_text[pair_col - 1]
-
- if s:starts_with(a:text, '\Cdo:', a:lnum)
- call s:debug("current line is do:")
- return pair_col - 1 + s:sw()
- elseif s:starts_with(a:text, '\Celse:', a:lnum)
- call s:debug("current line is else:")
- return pair_col - 1
- elseif s:starts_with(a:text, '\C\(\<do\>\|\<else\>\)', a:lnum)
- call s:debug("current line is do/else")
- return pair_col - 1
- elseif s:starts_with(pair_text, '\C\(do\|else\):', pair_lnum)
- call s:debug("inside do:/else:")
- return pair_col - 1 + s:sw()
- elseif pair_char == 'w'
- call s:debug("inside with/do")
- return pair_col + 4
- elseif pair_char == 'd'
- call s:debug("inside do/else|end")
- return pair_col - 1 + s:sw()
- else
- call s:debug("inside else/end")
- return s:do_handle_inside_pattern_match_block(pair_lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
- end
- end
-endfunction
+function! s:handle_with(start_lnum, start_col, context)
+ let block_info = searchpairpos('\C\%(\<with\>\|\<do\>\|\<else\>\)', '', s:keyword('end'), 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip()")
+ let block_start_lnum = block_info[0]
+ let block_start_col = block_info[1]
-function! s:do_handle_inside_keyword_block(pair_lnum, _pair_col, _lnum, text, prev_nb_lnum, prev_nb_text)
- let keyword_pattern = '\C\%(\<case\>\|\<cond\>\|\<try\>\|\<receive\>\|\<after\>\|\<catch\>\|\<rescue\>\|\<else\>\)'
- if a:pair_lnum
- " last line is a "receive" or something
- if s:starts_with(a:prev_nb_text, keyword_pattern, a:prev_nb_lnum)
- call s:debug("prev nb line is keyword")
- return indent(a:prev_nb_lnum) + s:sw()
- else
- return s:do_handle_inside_pattern_match_block(a:pair_lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
- end
- else
- return -1
- endif
-endfunction
+ let block_start_text = getline(block_start_lnum)
+ let block_start_char = block_start_text[block_start_col - 1]
-" Implements indent for pattern-matching blocks (e.g. case, fn, with/else)
-function! s:do_handle_inside_pattern_match_block(block_start_lnum, text, prev_nb_lnum, prev_nb_text)
- if a:text =~ '->'
- call s:debug("current line contains ->")
- return indent(a:block_start_lnum) + s:sw()
- elseif a:prev_nb_text =~ '->'
- call s:debug("prev nb line contains ->")
- return indent(a:prev_nb_lnum) + s:sw()
+ if s:starts_with(a:context, s:keyword('do\|else\|end'))
+ return indent(a:start_lnum)
+ elseif block_start_char == 'w' || s:starts_with(a:context, '\C\(do\|else\):')
+ return indent(a:start_lnum) + 5
+ elseif s:_starts_with(block_start_text, '\C\(do\|else\):', a:start_lnum)
+ return indent(block_start_lnum) + s:sw()
else
- return indent(a:prev_nb_lnum)
+ return s:do_handle_pattern_match_block(a:start_lnum, a:context)
end
endfunction
-function! s:do_handle_inside_fn(pair_lnum, _pair_col, lnum, text, prev_nb_lnum, prev_nb_text)
- if a:pair_lnum && a:pair_lnum != a:lnum
- return s:do_handle_inside_pattern_match_block(a:pair_lnum, a:text, a:prev_nb_lnum, a:prev_nb_text)
+function! s:do_handle_pattern_match_block(relative_line, context)
+ let relative_indent = indent(a:relative_line)
+ " hack!
+ if a:context.text =~ '\(fn.*\)\@<!->'
+ call s:debug("current line contains ->; assuming match definition")
+ return relative_indent + s:sw()
+ elseif search('\(fn.*\)\@<!->', 'bnW', a:relative_line) != 0
+ call s:debug("a previous line contains ->; assuming match handler")
+ return relative_indent + 2 * s:sw()
else
- return -1
- endif
-endfunction
-
-function! s:do_handle_inside_square_brace(pair_lnum, pair_col, _lnum, _text, _prev_nb_lnum, _prev_nb_text)
- " If in list...
- if a:pair_lnum != 0 || a:pair_col != 0
- let pair_text = getline(a:pair_lnum)
- let substr = strpart(pair_text, a:pair_col, len(pair_text)-1)
- let indent_pos = match(substr, '\S')
- if indent_pos != -1
- return indent_pos + a:pair_col
- else
- return indent(a:pair_lnum) + s:sw()
- endif
- else
- return -1
+ call s:debug("couldn't find any previous ->; assuming body text")
+ return relative_indent + s:sw()
end
endfunction
-function! s:do_handle_inside_curly_brace(pair_lnum, _pair_col, _lnum, _text, _prev_nb_lnum, _prev_nb_text)
- return indent(a:pair_lnum) + s:sw()
-endfunction
-
-function! s:do_handle_inside_parens(pair_lnum, pair_col, _lnum, _text, prev_nb_lnum, prev_nb_text)
- if a:pair_lnum
- if s:ends_with(a:prev_nb_text, '(', a:prev_nb_lnum)
- return indent(a:prev_nb_lnum) + s:sw()
- elseif a:pair_lnum == a:prev_nb_lnum
- " Align indent (e.g. "def add(a,")
- let pos = s:find_last_pos(a:prev_nb_lnum, a:prev_nb_text, '[^(]\+,')
- if pos == -1
- return 0
- else
- return pos
- end
- else
- return indent(a:prev_nb_lnum)
- end
- else
- return -1
- endif
-endfunction
-
-function! elixir#indent#handle_inside_generic_block(lnum, _text, prev_nb_lnum, prev_nb_text)
- let pair_lnum = searchpair(s:keyword('do\|fn'), '', s:keyword('end'), 'bW', "line('.') == ".a:lnum." || s:is_string_or_comment(line('.'), col('.'))", max([0, a:lnum - g:elixir_indent_max_lookbehind]))
+function! elixir#indent#handle_inside_generic_block(context)
+ let pair_lnum = searchpair(s:keyword('do\|fn'), '', s:keyword('end'), 'bW', "line('.') == ".a:context.lnum." || s:is_string_or_comment(line('.'), col('.'))", max([0, a:context.lnum - g:elixir_indent_max_lookbehind]))
if pair_lnum
" TODO: @jbodah 2017-03-29: this should probably be the case in *all*
" blocks
- if s:ends_with(a:prev_nb_text, ',', a:prev_nb_lnum)
+ if s:prev_ends_with(a:context, ',')
return indent(pair_lnum) + 2 * s:sw()
else
return indent(pair_lnum) + s:sw()
diff --git a/autoload/go/config.vim b/autoload/go/config.vim
index 5eef48d4..9ed523a9 100644
--- a/autoload/go/config.vim
+++ b/autoload/go/config.vim
@@ -137,10 +137,6 @@ function! go#config#SetGuruScope(scope) abort
endif
endfunction
-function! go#config#GocodeUnimportedPackages() abort
- return get(g:, 'go_gocode_unimported_packages', 0)
-endfunction
-
let s:sock_type = (has('win32') || has('win64')) ? 'tcp' : 'unix'
function! go#config#GocodeSocketType() abort
return get(g:, 'go_gocode_socket_type', s:sock_type)
@@ -150,8 +146,8 @@ function! go#config#GocodeProposeBuiltins() abort
return get(g:, 'go_gocode_propose_builtins', 1)
endfunction
-function! go#config#GocodeAutobuild() abort
- return get(g:, 'go_gocode_autobuild', 1)
+function! go#config#GocodeProposeSource() abort
+ return get(g:, 'go_gocode_propose_source', 1)
endfunction
function! go#config#EchoCommandInfo() abort
@@ -284,6 +280,14 @@ function! go#config#SetAsmfmtAutosave(value) abort
let g:go_asmfmt_autosave = a:value
endfunction
+function! go#config#ModFmtAutosave() abort
+ return get(g:, "go_mod_fmt_autosave", 1)
+endfunction
+
+function! go#config#SetModFmtAutosave(value) abort
+ let g:go_mod_fmt_autosave = a:value
+endfunction
+
function! go#config#DocMaxHeight() abort
return get(g:, "go_doc_max_height", 20)
endfunction
@@ -418,7 +422,7 @@ function! go#config#HighlightVariableDeclarations() abort
return get(g:, 'go_highlight_variable_declarations', 0)
endfunction
-function go#config#FoldEnable(...) abort
+function! go#config#FoldEnable(...) abort
if a:0 > 0
return index(go#config#FoldEnable(), a:1) > -1
endif
diff --git a/autoload/julia/doc.vim b/autoload/julia/doc.vim
new file mode 100644
index 00000000..8a9cab52
--- /dev/null
+++ b/autoload/julia/doc.vim
@@ -0,0 +1,246 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
+
+" path to the julia binary to communicate with
+if has('win32') || has('win64')
+ if exists('g:julia#doc#juliapath')
+ " use assigned g:julia#doc#juliapath
+ elseif executable('julia')
+ " use julia command in PATH
+ let g:julia#doc#juliapath = 'julia'
+ else
+ " search julia binary in the default installation paths
+ let pathlist = sort(glob($LOCALAPPDATA . '\Julia-*\bin\julia.exe', 1, 1))
+ let g:julia#doc#juliapath = get(pathlist, -1, 'julia')
+ endif
+else
+ let g:julia#doc#juliapath = get(g:, 'julia#doc#juliapath', 'julia')
+endif
+
+function! s:version() abort
+ let VERSION = {'major': 0, 'minor': 0}
+ if !executable(g:julia#doc#juliapath)
+ return VERSION
+ endif
+
+ let cmd = printf('%s -v', g:julia#doc#juliapath)
+ let output = system(cmd)
+ let versionstr = matchstr(output, '\C^julia version \zs\d\+\.\d\+\ze')
+ let [major, minor] = map(split(versionstr, '\.'), 'str2nr(v:val)')
+ let VERSION.major = major
+ let VERSION.minor = minor
+ return VERSION
+endfunction
+
+let s:VERSION = s:version()
+let s:NODOCPATTERN = '\C\VNo documentation found.'
+
+function! julia#doc#lookup(keyword, ...) abort
+ let juliapath = get(a:000, 0, g:julia#doc#juliapath)
+ let keyword = escape(a:keyword, '"\')
+ let cmd = printf('%s -E "@doc %s"', juliapath, keyword)
+ return systemlist(cmd)
+endfunction
+
+function! julia#doc#open(keyword) abort
+ if empty(a:keyword)
+ call s:warn('Not an appropriate keyword.')
+ return
+ endif
+
+ if !executable(g:julia#doc#juliapath)
+ call s:warn('%s command is not executable', g:julia#doc#juliapath)
+ return
+ endif
+
+ let doc = julia#doc#lookup(a:keyword, g:julia#doc#juliapath)
+ if empty(doc) || match(doc[0], s:NODOCPATTERN) > -1
+ call s:warn('No documentation found for "%s".', a:keyword)
+ return
+ endif
+
+ " workaround for * and ? since a buffername cannot include them
+ let keyword = a:keyword
+ let keyword = substitute(keyword, '\*', ':asterisk:', 'g')
+ let keyword = substitute(keyword, '?', ':question:', 'g')
+ let buffername = printf('juliadoc: %s', keyword)
+
+ call s:write_to_preview_window(doc, "juliadoc", buffername)
+
+ call filter(s:HELPHISTORY, 'v:val isnot# a:keyword')
+ call add(s:HELPHISTORY, a:keyword)
+endfunction
+
+function! s:write_to_preview_window(content, ftype, buffername)
+ " Are we in the preview window from the outset? If not, best to close any
+ " preview windows that might exist.
+ let pvw = &previewwindow
+ if !pvw
+ silent! pclose!
+ endif
+ execute "silent! pedit +setlocal\\ nobuflisted\\ noswapfile\\"
+ \ "buftype=nofile\\ bufhidden=wipe" a:buffername
+ silent! wincmd P
+ if &previewwindow
+ setlocal modifiable noreadonly
+ silent! %delete _
+ call append(0, a:content)
+ silent! $delete _
+ normal! ggj
+ setlocal nomodified readonly nomodifiable
+ execute "setfiletype" a:ftype
+ " Only return to a normal window if we didn't start in a preview window.
+ if !pvw
+ silent! wincmd p
+ endif
+ else
+ " We couldn't make it to the preview window, so as a fallback we dump the
+ " contents in the status area.
+ execute printf("echo '%s'", join(a:content, "\n"))
+ endif
+endfunction
+
+function! s:warn(...) abort
+ if a:0 == 0
+ return
+ endif
+
+ echohl WarningMsg
+ try
+ if a:0 == 1
+ echo a:1
+ else
+ echo call('printf', a:000)
+ endif
+ finally
+ echohl None
+ endtry
+endfunction
+
+
+
+let s:KEYWORDPATTERN = '\m@\?\h\k*!\?'
+
+" This function is called in normal mode or visual mode.
+function! julia#doc#keywordprg(word) abort
+ if a:word is# ''
+ return
+ endif
+
+ let word = s:unfnameescape(a:word)
+ if word is# expand('<cword>')
+ " 'K' in normal mode
+ " NOTE: Because ! and @ is not in 'iskeyword' option, this func ignore
+ " the argument to recognize keywords like "@time" and "push!"
+ let view = winsaveview()
+ let lnum = line('.')
+ let tail = searchpos(s:KEYWORDPATTERN, 'ce', lnum)
+ let head = searchpos(s:KEYWORDPATTERN, 'bc', lnum)
+ call winrestview(view)
+ if head == [0, 0] || tail == [0, 0]
+ return
+ else
+ let start = head[1] - 1
+ let end = tail[1] - 1
+ let word = getline(lnum)[start : end]
+ endif
+ endif
+ call julia#doc#open(word)
+endfunction
+
+if exists('+shellslash')
+ let s:ESCAPEDCHARS = " \t\n\"#%'*<?`|"
+else
+ let s:ESCAPEDCHARS = " \t\n*?[{`$\\%#'\"|!<"
+endif
+let s:FNAMEESCAPEPATTERN = '\\\ze[' . escape(s:ESCAPEDCHARS, ']^-\') . ']'
+
+" this function reproduces an original string escaped by fnameescape()
+function! s:unfnameescape(str) abort
+ if a:str is# ''
+ return ''
+ endif
+
+ " NOTE: We cannot determine the original string if a:str starts from '\-',
+ " '\+' or '\>' because fnameescape('-') ==# fnameescape('\-').
+ if a:str is# '\-'
+ " Remove escape anyway.
+ return '-'
+ endif
+
+ if a:str =~# '^\\[+>]'
+ let str = a:str[1:]
+ else
+ let str = a:str
+ endif
+ return substitute(str, s:FNAMEESCAPEPATTERN, '', 'g')
+endfunction
+
+
+
+let s:HELPPROMPT = 'help?> '
+let s:HELPHISTORY = []
+
+function! julia#doc#prompt() abort
+ let inputhist = s:savehistory('input')
+ echohl MoreMsg
+ try
+ call s:restorehistory('input', s:HELPHISTORY)
+ let keyword = input(s:HELPPROMPT, '', 'customlist,julia#doc#complete')
+
+ " Clear the last prompt
+ normal! :
+ finally
+ echohl None
+ call s:restorehistory('input', inputhist)
+ endtry
+
+ if empty(keyword)
+ return
+ endif
+
+ call julia#doc#open(keyword)
+endfunction
+
+function! s:savehistory(name) abort
+ if histnr(a:name) == -1
+ return []
+ endif
+
+ let history = []
+ for i in range(1, histnr(a:name))
+ let item = histget(a:name, i)
+ if !empty(item)
+ call add(history, item)
+ endif
+ endfor
+ return history
+endfunction
+
+function! s:restorehistory(name, history) abort
+ call histdel(a:name)
+ for item in a:history
+ call histadd(a:name, item)
+ endfor
+endfunction
+
+
+
+if s:VERSION.major == 0 && s:VERSION.minor <= 6
+ let s:REPL_SEARCH = 'Base.Docs.repl_search'
+else
+ let s:REPL_SEARCH = 'import REPL.repl_search; repl_search'
+endif
+
+function! julia#doc#complete(ArgLead, CmdLine, CursorPos) abort
+ return s:likely(a:ArgLead)
+endfunction
+
+function! s:likely(str) abort
+ " escape twice
+ let str = escape(escape(a:str, '"\'), '"\')
+ let cmd = printf('%s -E "%s(\"%s\")"', g:julia#doc#juliapath, s:REPL_SEARCH, str)
+ let output = systemlist(cmd)
+ return split(matchstr(output[0], '\C^search: \zs.*'))
+endfunction
+
+endif
diff --git a/autoload/julia_blocks.vim b/autoload/julia_blocks.vim
index ef7cf016..0362c8dc 100644
--- a/autoload/julia_blocks.vim
+++ b/autoload/julia_blocks.vim
@@ -244,8 +244,8 @@ function! julia_blocks#init_mappings()
call julia_blocks#select_reset()
augroup JuliaBlocks
au!
- au InsertEnter *.jl call julia_blocks#select_reset()
- au CursorMoved *.jl call s:cursor_moved()
+ au InsertEnter <buffer> call julia_blocks#select_reset()
+ au CursorMoved <buffer> call s:cursor_moved()
augroup END
" we would need some autocmd event associated with exiting from
diff --git a/autoload/julia_latex_symbols.vim b/autoload/julia_latex_symbols.vim
index 8fdb856a..5dc87df2 100644
--- a/autoload/julia_latex_symbols.vim
+++ b/autoload/julia_latex_symbols.vim
@@ -1,38 +1,36 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'julia') == -1
" This file is autogenerated from the script 'generate_latex_symbols_table.jl'
-" The symbols are based on Julia version 0.7.0-DEV.2011
+" The symbols are based on Julia version 0.7.0-rc2.0
scriptencoding utf-8
function! julia_latex_symbols#get_dict()
return {
- \ '\textexclamdown': '¡',
+ \ '\exclamdown': '¡',
\ '\sterling': '£',
\ '\yen': '¥',
- \ '\textbrokenbar': '¦',
+ \ '\brokenbar': '¦',
\ '\S': '§',
- \ '\textasciidieresis': '¨',
\ '\copyright': '©',
\ '\:copyright:': '©',
- \ '\textordfeminine': 'ª',
+ \ '\ordfeminine': 'ª',
\ '\neg': '¬',
\ '\circledR': '®',
\ '\:registered:': '®',
- \ '\textasciimacron': '¯',
+ \ '\highminus': '¯',
\ '\degree': '°',
\ '\pm': '±',
\ '\^2': '²',
\ '\^3': '³',
- \ '\textasciiacute': '´',
\ '\P': '¶',
\ '\cdotp': '·',
\ '\^1': '¹',
- \ '\textordmasculine': 'º',
- \ '\textonequarter': '¼',
- \ '\textonehalf': '½',
- \ '\textthreequarters': '¾',
- \ '\textquestiondown': '¿',
+ \ '\ordmasculine': 'º',
+ \ '\1/4': '¼',
+ \ '\1/2': '½',
+ \ '\3/4': '¾',
+ \ '\questiondown': '¿',
\ '\AA': 'Å',
\ '\AE': 'Æ',
\ '\DH': 'Ð',
@@ -43,80 +41,81 @@ function! julia_latex_symbols#get_dict()
\ '\aa': 'å',
\ '\ae': 'æ',
\ '\eth': 'ð',
+ \ '\dh': 'ð',
\ '\div': '÷',
\ '\o': 'ø',
\ '\th': 'þ',
\ '\DJ': 'Đ',
\ '\dj': 'đ',
- \ '\Elzxh': 'ħ',
\ '\hbar': 'ħ',
+ \ '\imath': 'ı',
\ '\L': 'Ł',
\ '\l': 'ł',
\ '\NG': 'Ŋ',
\ '\ng': 'ŋ',
\ '\OE': 'Œ',
\ '\oe': 'œ',
- \ '\texthvlig': 'ƕ',
- \ '\textnrleg': 'ƞ',
+ \ '\hvlig': 'ƕ',
+ \ '\nrleg': 'ƞ',
\ '\Zbar': 'Ƶ',
- \ '\textdoublepipe': 'ǂ',
- \ '\Elztrna': 'ɐ',
- \ '\Elztrnsa': 'ɒ',
- \ '\Elzopeno': 'ɔ',
- \ '\Elzrtld': 'ɖ',
- \ '\Elzschwa': 'ə',
- \ '\Elzpgamma': 'ɣ',
- \ '\Elzpbgam': 'ɤ',
- \ '\Elztrnh': 'ɥ',
- \ '\Elzbtdl': 'ɬ',
- \ '\Elzrtll': 'ɭ',
- \ '\Elztrnm': 'ɯ',
- \ '\Elztrnmlr': 'ɰ',
- \ '\Elzltlmr': 'ɱ',
- \ '\Elzltln': 'ɲ',
- \ '\Elzrtln': 'ɳ',
- \ '\Elzclomeg': 'ɷ',
- \ '\textphi': 'ɸ',
- \ '\Elztrnr': 'ɹ',
- \ '\Elztrnrl': 'ɺ',
- \ '\Elzrttrnr': 'ɻ',
- \ '\Elzrl': 'ɼ',
- \ '\Elzrtlr': 'ɽ',
- \ '\Elzfhr': 'ɾ',
- \ '\Elzrtls': 'ʂ',
- \ '\Elzesh': 'ʃ',
- \ '\Elztrnt': 'ʇ',
- \ '\Elzrtlt': 'ʈ',
- \ '\Elzpupsil': 'ʊ',
- \ '\Elzpscrv': 'ʋ',
- \ '\Elzinvv': 'ʌ',
- \ '\Elzinvw': 'ʍ',
- \ '\Elztrny': 'ʎ',
- \ '\Elzrtlz': 'ʐ',
- \ '\Elzyogh': 'ʒ',
- \ '\Elzglst': 'ʔ',
- \ '\Elzreglst': 'ʕ',
- \ '\Elzinglst': 'ʖ',
- \ '\textturnk': 'ʞ',
- \ '\Elzdyogh': 'ʤ',
- \ '\Elztesh': 'ʧ',
+ \ '\doublepipe': 'ǂ',
+ \ '\jmath': 'ȷ',
+ \ '\trna': 'ɐ',
+ \ '\trnsa': 'ɒ',
+ \ '\openo': 'ɔ',
+ \ '\rtld': 'ɖ',
+ \ '\schwa': 'ə',
+ \ '\pgamma': 'ɣ',
+ \ '\pbgam': 'ɤ',
+ \ '\trnh': 'ɥ',
+ \ '\btdl': 'ɬ',
+ \ '\rtll': 'ɭ',
+ \ '\trnm': 'ɯ',
+ \ '\trnmlr': 'ɰ',
+ \ '\ltlmr': 'ɱ',
+ \ '\ltln': 'ɲ',
+ \ '\rtln': 'ɳ',
+ \ '\clomeg': 'ɷ',
+ \ '\ltphi': 'ɸ',
+ \ '\trnr': 'ɹ',
+ \ '\trnrl': 'ɺ',
+ \ '\rttrnr': 'ɻ',
+ \ '\rl': 'ɼ',
+ \ '\rtlr': 'ɽ',
+ \ '\fhr': 'ɾ',
+ \ '\rtls': 'ʂ',
+ \ '\esh': 'ʃ',
+ \ '\trnt': 'ʇ',
+ \ '\rtlt': 'ʈ',
+ \ '\pupsil': 'ʊ',
+ \ '\pscrv': 'ʋ',
+ \ '\invv': 'ʌ',
+ \ '\invw': 'ʍ',
+ \ '\trny': 'ʎ',
+ \ '\rtlz': 'ʐ',
+ \ '\yogh': 'ʒ',
+ \ '\glst': 'ʔ',
+ \ '\reglst': 'ʕ',
+ \ '\inglst': 'ʖ',
+ \ '\turnk': 'ʞ',
+ \ '\dyogh': 'ʤ',
+ \ '\tesh': 'ʧ',
\ '\^h': 'ʰ',
\ '\^j': 'ʲ',
\ '\^r': 'ʳ',
\ '\^w': 'ʷ',
\ '\^y': 'ʸ',
\ '\rasp': 'ʼ',
- \ '\textasciicaron': 'ˇ',
- \ '\Elzverts': 'ˈ',
- \ '\Elzverti': 'ˌ',
- \ '\Elzlmrk': 'ː',
- \ '\Elzhlmrk': 'ˑ',
- \ '\Elzsbrhr': '˒',
- \ '\Elzsblhr': '˓',
- \ '\Elzrais': '˔',
- \ '\Elzlow': '˕',
+ \ '\verts': 'ˈ',
+ \ '\verti': 'ˌ',
+ \ '\lmrk': 'ː',
+ \ '\hlmrk': 'ˑ',
+ \ '\sbrhr': '˒',
+ \ '\sblhr': '˓',
+ \ '\rais': '˔',
+ \ '\low': '˕',
\ '\u': '˘',
- \ '\texttildelow': '˜',
+ \ '\tildelow': '˜',
\ '\^l': 'ˡ',
\ '\^s': 'ˢ',
\ '\^x': 'ˣ',
@@ -137,15 +136,14 @@ function! julia_latex_symbols#get_dict()
\ '\oturnedcomma': '̒',
\ '\ocommatopright': '̕',
\ '\droang': '̚',
- \ '\Elzpalh': '̡',
- \ '\Elzrh': '̢',
+ \ '\palh': '̡',
+ \ '\rh': '̢',
\ '\c': '̧',
\ '\k': '̨',
- \ '\Elzsbbrg': '̪',
+ \ '\sbbrg': '̪',
\ '\wideutilde': '̰',
\ '\underbar': '̲',
- \ '\Elzxl': '̵',
- \ '\Elzbar': '̶',
+ \ '\strike': '̶',
\ '\sout': '̶',
\ '\not': '̸',
\ '\underleftrightarrow': '͍',
@@ -215,7 +213,7 @@ function! julia_latex_symbols#get_dict()
\ '\upsampi': 'ϡ',
\ '\varkappa': 'ϰ',
\ '\varrho': 'ϱ',
- \ '\textTheta': 'ϴ',
+ \ '\varTheta': 'ϴ',
\ '\epsilon': 'ϵ',
\ '\backepsilon': '϶',
\ '\^A': 'ᴬ',
@@ -280,16 +278,16 @@ function! julia_latex_symbols#get_dict()
\ '\Vert': '‖',
\ '\lq': '‘',
\ '\rq': '’',
- \ '\Elzreapos': '‛',
- \ '\textquotedblleft': '“',
- \ '\textquotedblright': '”',
+ \ '\reapos': '‛',
+ \ '\quotedblleft': '“',
+ \ '\quotedblright': '”',
\ '\dagger': '†',
\ '\ddagger': '‡',
\ '\bullet': '•',
\ '\dots': '…',
\ '\ldots': '…',
- \ '\textperthousand': '‰',
- \ '\textpertenthousand': '‱',
+ \ '\perthousand': '‰',
+ \ '\pertenthousand': '‱',
\ '\prime': '′',
\ '\pprime': '″',
\ '\ppprime': '‴',
@@ -302,6 +300,7 @@ function! julia_latex_symbols#get_dict()
\ '\tieconcat': '⁀',
\ '\:interrobang:': '⁉',
\ '\pppprime': '⁗',
+ \ '\tricolon': '⁝',
\ '\nolinebreak': '⁠',
\ '\^0': '⁰',
\ '\^i': 'ⁱ',
@@ -345,7 +344,7 @@ function! julia_latex_symbols#get_dict()
\ '\_p': 'ₚ',
\ '\_s': 'ₛ',
\ '\_t': 'ₜ',
- \ '\Elzpes': '₧',
+ \ '\pes': '₧',
\ '\euro': '€',
\ '\leftharpoonaccent': '⃐',
\ '\rightharpoonaccent': '⃑',
@@ -367,64 +366,81 @@ function! julia_latex_symbols#get_dict()
\ '\underleftarrow': '⃮',
\ '\underrightarrow': '⃯',
\ '\asteraccent': '⃰',
- \ '\BbbC': 'ℂ',
- \ '\Eulerconst': 'ℇ',
- \ '\mscrg': 'ℊ',
- \ '\mscrH': 'ℋ',
- \ '\mfrakH': 'ℌ',
- \ '\BbbH': 'ℍ',
- \ '\Planckconst': 'ℎ',
+ \ '\bbC': 'ℂ',
+ \ '\eulermascheroni': 'ℇ',
+ \ '\scrg': 'ℊ',
+ \ '\scrH': 'ℋ',
+ \ '\frakH': 'ℌ',
+ \ '\bbH': 'ℍ',
+ \ '\planck': 'ℎ',
\ '\hslash': 'ℏ',
- \ '\mscrI': 'ℐ',
+ \ '\scrI': 'ℐ',
\ '\Im': 'ℑ',
- \ '\mscrL': 'ℒ',
+ \ '\scrL': 'ℒ',
\ '\ell': 'ℓ',
- \ '\BbbN': 'ℕ',
- \ '\textnumero': '№',
+ \ '\bbN': 'ℕ',
+ \ '\numero': '№',
\ '\wp': '℘',
- \ '\BbbP': 'ℙ',
- \ '\BbbQ': 'ℚ',
- \ '\mscrR': 'ℛ',
+ \ '\bbP': 'ℙ',
+ \ '\bbQ': 'ℚ',
+ \ '\scrR': 'ℛ',
\ '\Re': 'ℜ',
- \ '\BbbR': 'ℝ',
- \ '\Elzxrat': '℞',
- \ '\texttrademark': '™',
+ \ '\bbR': 'ℝ',
+ \ '\xrat': '℞',
+ \ '\trademark': '™',
\ '\:tm:': '™',
- \ '\BbbZ': 'ℤ',
+ \ '\bbZ': 'ℤ',
\ '\mho': '℧',
- \ '\mfrakZ': 'ℨ',
+ \ '\frakZ': 'ℨ',
\ '\turnediota': '℩',
\ '\Angstrom': 'Å',
- \ '\mscrB': 'ℬ',
- \ '\mfrakC': 'ℭ',
- \ '\mscre': 'ℯ',
+ \ '\scrB': 'ℬ',
+ \ '\frakC': 'ℭ',
+ \ '\scre': 'ℯ',
\ '\euler': 'ℯ',
- \ '\mscrE': 'ℰ',
- \ '\mscrF': 'ℱ',
+ \ '\scrE': 'ℰ',
+ \ '\scrF': 'ℱ',
\ '\Finv': 'Ⅎ',
- \ '\mscrM': 'ℳ',
- \ '\mscro': 'ℴ',
+ \ '\scrM': 'ℳ',
+ \ '\scro': 'ℴ',
\ '\aleph': 'ℵ',
\ '\beth': 'ℶ',
\ '\gimel': 'ℷ',
\ '\daleth': 'ℸ',
\ '\:information_source:': 'ℹ',
- \ '\Bbbpi': 'ℼ',
- \ '\Bbbgamma': 'ℽ',
- \ '\BbbGamma': 'ℾ',
- \ '\BbbPi': 'ℿ',
+ \ '\bbpi': 'ℼ',
+ \ '\bbgamma': 'ℽ',
+ \ '\bbGamma': 'ℾ',
+ \ '\bbPi': 'ℿ',
\ '\bbsum': '⅀',
\ '\Game': '⅁',
\ '\sansLturned': '⅂',
\ '\sansLmirrored': '⅃',
\ '\Yup': '⅄',
- \ '\mitBbbD': 'ⅅ',
- \ '\mitBbbd': 'ⅆ',
- \ '\mitBbbe': 'ⅇ',
- \ '\mitBbbi': 'ⅈ',
- \ '\mitBbbj': 'ⅉ',
+ \ '\bbiD': 'ⅅ',
+ \ '\bbid': 'ⅆ',
+ \ '\bbie': 'ⅇ',
+ \ '\bbii': 'ⅈ',
+ \ '\bbij': 'ⅉ',
\ '\PropertyLine': '⅊',
\ '\upand': '⅋',
+ \ '\1/7': '⅐',
+ \ '\1/9': '⅑',
+ \ '\1/10': '⅒',
+ \ '\1/3': '⅓',
+ \ '\2/3': '⅔',
+ \ '\1/5': '⅕',
+ \ '\2/5': '⅖',
+ \ '\3/5': '⅗',
+ \ '\4/5': '⅘',
+ \ '\1/6': '⅙',
+ \ '\5/6': '⅚',
+ \ '\1/8': '⅛',
+ \ '\3/8': '⅜',
+ \ '\5/8': '⅝',
+ \ '\7/8': '⅞',
+ \ '\1/': '⅟',
+ \ '\0/3': '↉',
\ '\leftarrow': '←',
\ '\uparrow': '↑',
\ '\to': '→',
@@ -778,7 +794,7 @@ function! julia_latex_symbols#get_dict()
\ '\nsqsubseteq': '⋢',
\ '\nsqsupseteq': '⋣',
\ '\sqsubsetneq': '⋤',
- \ '\Elzsqspne': '⋥',
+ \ '\sqspne': '⋥',
\ '\lnsim': '⋦',
\ '\gnsim': '⋧',
\ '\precnsim': '⋨',
@@ -832,12 +848,12 @@ function! julia_latex_symbols#get_dict()
\ '\conictaper': '⌲',
\ '\topbot': '⌶',
\ '\obar': '⌽',
- \ '\APLnotslash': '⌿',
- \ '\APLnotbackslash': '⍀',
- \ '\APLboxupcaret': '⍓',
- \ '\APLboxquestion': '⍰',
+ \ '\notslash': '⌿',
+ \ '\notbackslash': '⍀',
+ \ '\boxupcaret': '⍓',
+ \ '\boxquestion': '⍰',
\ '\hexagon': '⎔',
- \ '\Elzdlcorn': '⎣',
+ \ '\dlcorn': '⎣',
\ '\lmoustache': '⎰',
\ '\rmoustache': '⎱',
\ '\overbracket': '⎴',
@@ -862,11 +878,11 @@ function! julia_latex_symbols#get_dict()
\ '\:alarm_clock:': '⏰',
\ '\:hourglass_flowing_sand:': '⏳',
\ '\blanksymbol': '␢',
- \ '\textvisiblespace': '␣',
+ \ '\visiblespace': '␣',
\ '\:m:': 'Ⓜ',
\ '\circledS': 'Ⓢ',
- \ '\Elzdshfnc': '┆',
- \ '\Elzsqfnw': '┙',
+ \ '\dshfnc': '┆',
+ \ '\sqfnw': '┙',
\ '\diagup': '╱',
\ '\diagdown': '╲',
\ '\blockuphalf': '▀',
@@ -894,7 +910,7 @@ function! julia_latex_symbols#get_dict()
\ '\hrectangleblack': '▬',
\ '\hrectangle': '▭',
\ '\vrectangleblack': '▮',
- \ '\Elzvrecto': '▯',
+ \ '\vrecto': '▯',
\ '\parallelogramblack': '▰',
\ '\parallelogram': '▱',
\ '\bigblacktriangleup': '▲',
@@ -929,15 +945,15 @@ function! julia_latex_symbols#get_dict()
\ '\circlevertfill': '◍',
\ '\bullseye': '◎',
\ '\mdlgblkcircle': '●',
- \ '\Elzcirfl': '◐',
- \ '\Elzcirfr': '◑',
- \ '\Elzcirfb': '◒',
+ \ '\cirfl': '◐',
+ \ '\cirfr': '◑',
+ \ '\cirfb': '◒',
\ '\circletophalfblack': '◓',
\ '\circleurquadblack': '◔',
\ '\blackcircleulquadwhite': '◕',
\ '\blacklefthalfcircle': '◖',
\ '\blackrighthalfcircle': '◗',
- \ '\Elzrvbull': '◘',
+ \ '\rvbull': '◘',
\ '\inversewhitecircle': '◙',
\ '\invwhiteupperhalfcircle': '◚',
\ '\invwhitelowerhalfcircle': '◛',
@@ -952,10 +968,10 @@ function! julia_latex_symbols#get_dict()
\ '\ulblacktriangle': '◤',
\ '\urblacktriangle': '◥',
\ '\smwhtcircle': '◦',
- \ '\Elzsqfl': '◧',
- \ '\Elzsqfr': '◨',
+ \ '\sqfl': '◧',
+ \ '\sqfr': '◨',
\ '\squareulblack': '◩',
- \ '\Elzsqfse': '◪',
+ \ '\sqfse': '◪',
\ '\boxbar': '◫',
\ '\trianglecdot': '◬',
\ '\triangleleftblack': '◭',
@@ -1066,7 +1082,7 @@ function! julia_latex_symbols#get_dict()
\ '\:anchor:': '⚓',
\ '\:warning:': '⚠',
\ '\:zap:': '⚡',
- \ '\Hermaphrodite': '⚥',
+ \ '\hermaphrodite': '⚥',
\ '\mdwhtcircle': '⚪',
\ '\:white_circle:': '⚪',
\ '\mdblkcircle': '⚫',
@@ -1199,11 +1215,11 @@ function! julia_latex_symbols#get_dict()
\ '\nwovnearrow': '⤲',
\ '\:arrow_heading_up:': '⤴',
\ '\:arrow_heading_down:': '⤵',
- \ '\ElzRlarr': '⥂',
- \ '\ElzrLarr': '⥄',
+ \ '\Rlarr': '⥂',
+ \ '\rLarr': '⥄',
\ '\rightarrowplus': '⥅',
\ '\leftarrowplus': '⥆',
- \ '\Elzrarrx': '⥇',
+ \ '\rarrx': '⥇',
\ '\leftrightarrowcircle': '⥈',
\ '\twoheaduparrowcircle': '⥉',
\ '\leftrightharpoonupdown': '⥊',
@@ -1247,13 +1263,13 @@ function! julia_latex_symbols#get_dict()
\ '\RoundImplies': '⥰',
\ '\Vvert': '⦀',
\ '\Elroang': '⦆',
- \ '\Elzddfnc': '⦙',
+ \ '\ddfnc': '⦙',
\ '\measuredangleleft': '⦛',
\ '\Angle': '⦜',
\ '\rightanglemdot': '⦝',
\ '\angles': '⦞',
\ '\angdnr': '⦟',
- \ '\Elzlpargt': '⦠',
+ \ '\lpargt': '⦠',
\ '\sphericalangleup': '⦡',
\ '\turnangle': '⦢',
\ '\revangle': '⦣',
@@ -1285,8 +1301,8 @@ function! julia_latex_symbols#get_dict()
\ '\boxbslash': '⧅',
\ '\boxast': '⧆',
\ '\boxcircle': '⧇',
- \ '\ElzLap': '⧊',
- \ '\Elzdefas': '⧋',
+ \ '\Lap': '⧊',
+ \ '\defas': '⧋',
\ '\LeftTriangleBar': '⧏',
\ '\NotLeftTriangleBar': '⧏̸',
\ '\RightTriangleBar': '⧐',
@@ -1332,6 +1348,7 @@ function! julia_latex_symbols#get_dict()
\ '\upint': '⨛',
\ '\lowint': '⨜',
\ '\Join': '⨝',
+ \ '\join': '⨝',
\ '\ringplus': '⨢',
\ '\plushat': '⨣',
\ '\simplus': '⨤',
@@ -1345,7 +1362,7 @@ function! julia_latex_symbols#get_dict()
\ '\minusrdots': '⨬',
\ '\opluslhrim': '⨭',
\ '\oplusrhrim': '⨮',
- \ '\ElzTimes': '⨯',
+ \ '\Times': '⨯',
\ '\dottimes': '⨰',
\ '\timesbar': '⨱',
\ '\btimes': '⨲',
@@ -1376,8 +1393,8 @@ function! julia_latex_symbols#get_dict()
\ '\closedvarcupsmashprod': '⩐',
\ '\wedgeodot': '⩑',
\ '\veeodot': '⩒',
- \ '\ElzAnd': '⩓',
- \ '\ElzOr': '⩔',
+ \ '\And': '⩓',
+ \ '\Or': '⩔',
\ '\wedgeonwedge': '⩕',
\ '\ElOr': '⩖',
\ '\bigslopedvee': '⩗',
@@ -1387,7 +1404,7 @@ function! julia_latex_symbols#get_dict()
\ '\midbarwedge': '⩜',
\ '\midbarvee': '⩝',
\ '\perspcorrespond': '⩞',
- \ '\Elzminhat': '⩟',
+ \ '\minhat': '⩟',
\ '\wedgedoublebar': '⩠',
\ '\varveebar': '⩡',
\ '\doublebarvee': '⩢',
@@ -1520,7 +1537,7 @@ function! julia_latex_symbols#get_dict()
\ '\dashV': '⫣',
\ '\Dashv': '⫤',
\ '\interleave': '⫴',
- \ '\Elztdcol': '⫶',
+ \ '\tdcol': '⫶',
\ '\lllnest': '⫷',
\ '\gggnest': '⫸',
\ '\leqqslant': '⫹',
@@ -1603,1002 +1620,1002 @@ function! julia_latex_symbols#get_dict()
\ '\:part_alternation_mark:': '〽',
\ '\:congratulations:': '㊗',
\ '\:secret:': '㊙',
- \ '\mbfA': '𝐀',
- \ '\mbfB': '𝐁',
- \ '\mbfC': '𝐂',
- \ '\mbfD': '𝐃',
- \ '\mbfE': '𝐄',
- \ '\mbfF': '𝐅',
- \ '\mbfG': '𝐆',
- \ '\mbfH': '𝐇',
- \ '\mbfI': '𝐈',
- \ '\mbfJ': '𝐉',
- \ '\mbfK': '𝐊',
- \ '\mbfL': '𝐋',
- \ '\mbfM': '𝐌',
- \ '\mbfN': '𝐍',
- \ '\mbfO': '𝐎',
- \ '\mbfP': '𝐏',
- \ '\mbfQ': '𝐐',
- \ '\mbfR': '𝐑',
- \ '\mbfS': '𝐒',
- \ '\mbfT': '𝐓',
- \ '\mbfU': '𝐔',
- \ '\mbfV': '𝐕',
- \ '\mbfW': '𝐖',
- \ '\mbfX': '𝐗',
- \ '\mbfY': '𝐘',
- \ '\mbfZ': '𝐙',
- \ '\mbfa': '𝐚',
- \ '\mbfb': '𝐛',
- \ '\mbfc': '𝐜',
- \ '\mbfd': '𝐝',
- \ '\mbfe': '𝐞',
- \ '\mbff': '𝐟',
- \ '\mbfg': '𝐠',
- \ '\mbfh': '𝐡',
- \ '\mbfi': '𝐢',
- \ '\mbfj': '𝐣',
- \ '\mbfk': '𝐤',
- \ '\mbfl': '𝐥',
- \ '\mbfm': '𝐦',
- \ '\mbfn': '𝐧',
- \ '\mbfo': '𝐨',
- \ '\mbfp': '𝐩',
- \ '\mbfq': '𝐪',
- \ '\mbfr': '𝐫',
- \ '\mbfs': '𝐬',
- \ '\mbft': '𝐭',
- \ '\mbfu': '𝐮',
- \ '\mbfv': '𝐯',
- \ '\mbfw': '𝐰',
- \ '\mbfx': '𝐱',
- \ '\mbfy': '𝐲',
- \ '\mbfz': '𝐳',
- \ '\mitA': '𝐴',
- \ '\mitB': '𝐵',
- \ '\mitC': '𝐶',
- \ '\mitD': '𝐷',
- \ '\mitE': '𝐸',
- \ '\mitF': '𝐹',
- \ '\mitG': '𝐺',
- \ '\mitH': '𝐻',
- \ '\mitI': '𝐼',
- \ '\mitJ': '𝐽',
- \ '\mitK': '𝐾',
- \ '\mitL': '𝐿',
- \ '\mitM': '𝑀',
- \ '\mitN': '𝑁',
- \ '\mitO': '𝑂',
- \ '\mitP': '𝑃',
- \ '\mitQ': '𝑄',
- \ '\mitR': '𝑅',
- \ '\mitS': '𝑆',
- \ '\mitT': '𝑇',
- \ '\mitU': '𝑈',
- \ '\mitV': '𝑉',
- \ '\mitW': '𝑊',
- \ '\mitX': '𝑋',
- \ '\mitY': '𝑌',
- \ '\mitZ': '𝑍',
- \ '\mita': '𝑎',
- \ '\mitb': '𝑏',
- \ '\mitc': '𝑐',
- \ '\mitd': '𝑑',
- \ '\mite': '𝑒',
- \ '\mitf': '𝑓',
- \ '\mitg': '𝑔',
- \ '\miti': '𝑖',
- \ '\mitj': '𝑗',
- \ '\mitk': '𝑘',
- \ '\mitl': '𝑙',
- \ '\mitm': '𝑚',
- \ '\mitn': '𝑛',
- \ '\mito': '𝑜',
- \ '\mitp': '𝑝',
- \ '\mitq': '𝑞',
- \ '\mitr': '𝑟',
- \ '\mits': '𝑠',
- \ '\mitt': '𝑡',
- \ '\mitu': '𝑢',
- \ '\mitv': '𝑣',
- \ '\mitw': '𝑤',
- \ '\mitx': '𝑥',
- \ '\mity': '𝑦',
- \ '\mitz': '𝑧',
- \ '\mbfitA': '𝑨',
- \ '\mbfitB': '𝑩',
- \ '\mbfitC': '𝑪',
- \ '\mbfitD': '𝑫',
- \ '\mbfitE': '𝑬',
- \ '\mbfitF': '𝑭',
- \ '\mbfitG': '𝑮',
- \ '\mbfitH': '𝑯',
- \ '\mbfitI': '𝑰',
- \ '\mbfitJ': '𝑱',
- \ '\mbfitK': '𝑲',
- \ '\mbfitL': '𝑳',
- \ '\mbfitM': '𝑴',
- \ '\mbfitN': '𝑵',
- \ '\mbfitO': '𝑶',
- \ '\mbfitP': '𝑷',
- \ '\mbfitQ': '𝑸',
- \ '\mbfitR': '𝑹',
- \ '\mbfitS': '𝑺',
- \ '\mbfitT': '𝑻',
- \ '\mbfitU': '𝑼',
- \ '\mbfitV': '𝑽',
- \ '\mbfitW': '𝑾',
- \ '\mbfitX': '𝑿',
- \ '\mbfitY': '𝒀',
- \ '\mbfitZ': '𝒁',
- \ '\mbfita': '𝒂',
- \ '\mbfitb': '𝒃',
- \ '\mbfitc': '𝒄',
- \ '\mbfitd': '𝒅',
- \ '\mbfite': '𝒆',
- \ '\mbfitf': '𝒇',
- \ '\mbfitg': '𝒈',
- \ '\mbfith': '𝒉',
- \ '\mbfiti': '𝒊',
- \ '\mbfitj': '𝒋',
- \ '\mbfitk': '𝒌',
- \ '\mbfitl': '𝒍',
- \ '\mbfitm': '𝒎',
- \ '\mbfitn': '𝒏',
- \ '\mbfito': '𝒐',
- \ '\mbfitp': '𝒑',
- \ '\mbfitq': '𝒒',
- \ '\mbfitr': '𝒓',
- \ '\mbfits': '𝒔',
- \ '\mbfitt': '𝒕',
- \ '\mbfitu': '𝒖',
- \ '\mbfitv': '𝒗',
- \ '\mbfitw': '𝒘',
- \ '\mbfitx': '𝒙',
- \ '\mbfity': '𝒚',
- \ '\mbfitz': '𝒛',
- \ '\mscrA': '𝒜',
- \ '\mscrC': '𝒞',
- \ '\mscrD': '𝒟',
- \ '\mscrG': '𝒢',
- \ '\mscrJ': '𝒥',
- \ '\mscrK': '𝒦',
- \ '\mscrN': '𝒩',
- \ '\mscrO': '𝒪',
- \ '\mscrP': '𝒫',
- \ '\mscrQ': '𝒬',
- \ '\mscrS': '𝒮',
- \ '\mscrT': '𝒯',
- \ '\mscrU': '𝒰',
- \ '\mscrV': '𝒱',
- \ '\mscrW': '𝒲',
- \ '\mscrX': '𝒳',
- \ '\mscrY': '𝒴',
- \ '\mscrZ': '𝒵',
- \ '\mscra': '𝒶',
- \ '\mscrb': '𝒷',
- \ '\mscrc': '𝒸',
- \ '\mscrd': '𝒹',
- \ '\mscrf': '𝒻',
- \ '\mscrh': '𝒽',
- \ '\mscri': '𝒾',
- \ '\mscrj': '𝒿',
- \ '\mscrk': '𝓀',
- \ '\mscrl': '𝓁',
- \ '\mscrm': '𝓂',
- \ '\mscrn': '𝓃',
- \ '\mscrp': '𝓅',
- \ '\mscrq': '𝓆',
- \ '\mscrr': '𝓇',
- \ '\mscrs': '𝓈',
- \ '\mscrt': '𝓉',
- \ '\mscru': '𝓊',
- \ '\mscrv': '𝓋',
- \ '\mscrw': '𝓌',
- \ '\mscrx': '𝓍',
- \ '\mscry': '𝓎',
- \ '\mscrz': '𝓏',
- \ '\mbfscrA': '𝓐',
- \ '\mbfscrB': '𝓑',
- \ '\mbfscrC': '𝓒',
- \ '\mbfscrD': '𝓓',
- \ '\mbfscrE': '𝓔',
- \ '\mbfscrF': '𝓕',
- \ '\mbfscrG': '𝓖',
- \ '\mbfscrH': '𝓗',
- \ '\mbfscrI': '𝓘',
- \ '\mbfscrJ': '𝓙',
- \ '\mbfscrK': '𝓚',
- \ '\mbfscrL': '𝓛',
- \ '\mbfscrM': '𝓜',
- \ '\mbfscrN': '𝓝',
- \ '\mbfscrO': '𝓞',
- \ '\mbfscrP': '𝓟',
- \ '\mbfscrQ': '𝓠',
- \ '\mbfscrR': '𝓡',
- \ '\mbfscrS': '𝓢',
- \ '\mbfscrT': '𝓣',
- \ '\mbfscrU': '𝓤',
- \ '\mbfscrV': '𝓥',
- \ '\mbfscrW': '𝓦',
- \ '\mbfscrX': '𝓧',
- \ '\mbfscrY': '𝓨',
- \ '\mbfscrZ': '𝓩',
- \ '\mbfscra': '𝓪',
- \ '\mbfscrb': '𝓫',
- \ '\mbfscrc': '𝓬',
- \ '\mbfscrd': '𝓭',
- \ '\mbfscre': '𝓮',
- \ '\mbfscrf': '𝓯',
- \ '\mbfscrg': '𝓰',
- \ '\mbfscrh': '𝓱',
- \ '\mbfscri': '𝓲',
- \ '\mbfscrj': '𝓳',
- \ '\mbfscrk': '𝓴',
- \ '\mbfscrl': '𝓵',
- \ '\mbfscrm': '𝓶',
- \ '\mbfscrn': '𝓷',
- \ '\mbfscro': '𝓸',
- \ '\mbfscrp': '𝓹',
- \ '\mbfscrq': '𝓺',
- \ '\mbfscrr': '𝓻',
- \ '\mbfscrs': '𝓼',
- \ '\mbfscrt': '𝓽',
- \ '\mbfscru': '𝓾',
- \ '\mbfscrv': '𝓿',
- \ '\mbfscrw': '𝔀',
- \ '\mbfscrx': '𝔁',
- \ '\mbfscry': '𝔂',
- \ '\mbfscrz': '𝔃',
- \ '\mfrakA': '𝔄',
- \ '\mfrakB': '𝔅',
- \ '\mfrakD': '𝔇',
- \ '\mfrakE': '𝔈',
- \ '\mfrakF': '𝔉',
- \ '\mfrakG': '𝔊',
- \ '\mfrakJ': '𝔍',
- \ '\mfrakK': '𝔎',
- \ '\mfrakL': '𝔏',
- \ '\mfrakM': '𝔐',
- \ '\mfrakN': '𝔑',
- \ '\mfrakO': '𝔒',
- \ '\mfrakP': '𝔓',
- \ '\mfrakQ': '𝔔',
- \ '\mfrakS': '𝔖',
- \ '\mfrakT': '𝔗',
- \ '\mfrakU': '𝔘',
- \ '\mfrakV': '𝔙',
- \ '\mfrakW': '𝔚',
- \ '\mfrakX': '𝔛',
- \ '\mfrakY': '𝔜',
- \ '\mfraka': '𝔞',
- \ '\mfrakb': '𝔟',
- \ '\mfrakc': '𝔠',
- \ '\mfrakd': '𝔡',
- \ '\mfrake': '𝔢',
- \ '\mfrakf': '𝔣',
- \ '\mfrakg': '𝔤',
- \ '\mfrakh': '𝔥',
- \ '\mfraki': '𝔦',
- \ '\mfrakj': '𝔧',
- \ '\mfrakk': '𝔨',
- \ '\mfrakl': '𝔩',
- \ '\mfrakm': '𝔪',
- \ '\mfrakn': '𝔫',
- \ '\mfrako': '𝔬',
- \ '\mfrakp': '𝔭',
- \ '\mfrakq': '𝔮',
- \ '\mfrakr': '𝔯',
- \ '\mfraks': '𝔰',
- \ '\mfrakt': '𝔱',
- \ '\mfraku': '𝔲',
- \ '\mfrakv': '𝔳',
- \ '\mfrakw': '𝔴',
- \ '\mfrakx': '𝔵',
- \ '\mfraky': '𝔶',
- \ '\mfrakz': '𝔷',
- \ '\BbbA': '𝔸',
- \ '\BbbB': '𝔹',
- \ '\BbbD': '𝔻',
- \ '\BbbE': '𝔼',
- \ '\BbbF': '𝔽',
- \ '\BbbG': '𝔾',
- \ '\BbbI': '𝕀',
- \ '\BbbJ': '𝕁',
- \ '\BbbK': '𝕂',
- \ '\BbbL': '𝕃',
- \ '\BbbM': '𝕄',
- \ '\BbbO': '𝕆',
- \ '\BbbS': '𝕊',
- \ '\BbbT': '𝕋',
- \ '\BbbU': '𝕌',
- \ '\BbbV': '𝕍',
- \ '\BbbW': '𝕎',
- \ '\BbbX': '𝕏',
- \ '\BbbY': '𝕐',
- \ '\Bbba': '𝕒',
- \ '\Bbbb': '𝕓',
- \ '\Bbbc': '𝕔',
- \ '\Bbbd': '𝕕',
- \ '\Bbbe': '𝕖',
- \ '\Bbbf': '𝕗',
- \ '\Bbbg': '𝕘',
- \ '\Bbbh': '𝕙',
- \ '\Bbbi': '𝕚',
- \ '\Bbbj': '𝕛',
- \ '\Bbbk': '𝕜',
- \ '\Bbbl': '𝕝',
- \ '\Bbbm': '𝕞',
- \ '\Bbbn': '𝕟',
- \ '\Bbbo': '𝕠',
- \ '\Bbbp': '𝕡',
- \ '\Bbbq': '𝕢',
- \ '\Bbbr': '𝕣',
- \ '\Bbbs': '𝕤',
- \ '\Bbbt': '𝕥',
- \ '\Bbbu': '𝕦',
- \ '\Bbbv': '𝕧',
- \ '\Bbbw': '𝕨',
- \ '\Bbbx': '𝕩',
- \ '\Bbby': '𝕪',
- \ '\Bbbz': '𝕫',
- \ '\mbffrakA': '𝕬',
- \ '\mbffrakB': '𝕭',
- \ '\mbffrakC': '𝕮',
- \ '\mbffrakD': '𝕯',
- \ '\mbffrakE': '𝕰',
- \ '\mbffrakF': '𝕱',
- \ '\mbffrakG': '𝕲',
- \ '\mbffrakH': '𝕳',
- \ '\mbffrakI': '𝕴',
- \ '\mbffrakJ': '𝕵',
- \ '\mbffrakK': '𝕶',
- \ '\mbffrakL': '𝕷',
- \ '\mbffrakM': '𝕸',
- \ '\mbffrakN': '𝕹',
- \ '\mbffrakO': '𝕺',
- \ '\mbffrakP': '𝕻',
- \ '\mbffrakQ': '𝕼',
- \ '\mbffrakR': '𝕽',
- \ '\mbffrakS': '𝕾',
- \ '\mbffrakT': '𝕿',
- \ '\mbffrakU': '𝖀',
- \ '\mbffrakV': '𝖁',
- \ '\mbffrakW': '𝖂',
- \ '\mbffrakX': '𝖃',
- \ '\mbffrakY': '𝖄',
- \ '\mbffrakZ': '𝖅',
- \ '\mbffraka': '𝖆',
- \ '\mbffrakb': '𝖇',
- \ '\mbffrakc': '𝖈',
- \ '\mbffrakd': '𝖉',
- \ '\mbffrake': '𝖊',
- \ '\mbffrakf': '𝖋',
- \ '\mbffrakg': '𝖌',
- \ '\mbffrakh': '𝖍',
- \ '\mbffraki': '𝖎',
- \ '\mbffrakj': '𝖏',
- \ '\mbffrakk': '𝖐',
- \ '\mbffrakl': '𝖑',
- \ '\mbffrakm': '𝖒',
- \ '\mbffrakn': '𝖓',
- \ '\mbffrako': '𝖔',
- \ '\mbffrakp': '𝖕',
- \ '\mbffrakq': '𝖖',
- \ '\mbffrakr': '𝖗',
- \ '\mbffraks': '𝖘',
- \ '\mbffrakt': '𝖙',
- \ '\mbffraku': '𝖚',
- \ '\mbffrakv': '𝖛',
- \ '\mbffrakw': '𝖜',
- \ '\mbffrakx': '𝖝',
- \ '\mbffraky': '𝖞',
- \ '\mbffrakz': '𝖟',
- \ '\msansA': '𝖠',
- \ '\msansB': '𝖡',
- \ '\msansC': '𝖢',
- \ '\msansD': '𝖣',
- \ '\msansE': '𝖤',
- \ '\msansF': '𝖥',
- \ '\msansG': '𝖦',
- \ '\msansH': '𝖧',
- \ '\msansI': '𝖨',
- \ '\msansJ': '𝖩',
- \ '\msansK': '𝖪',
- \ '\msansL': '𝖫',
- \ '\msansM': '𝖬',
- \ '\msansN': '𝖭',
- \ '\msansO': '𝖮',
- \ '\msansP': '𝖯',
- \ '\msansQ': '𝖰',
- \ '\msansR': '𝖱',
- \ '\msansS': '𝖲',
- \ '\msansT': '𝖳',
- \ '\msansU': '𝖴',
- \ '\msansV': '𝖵',
- \ '\msansW': '𝖶',
- \ '\msansX': '𝖷',
- \ '\msansY': '𝖸',
- \ '\msansZ': '𝖹',
- \ '\msansa': '𝖺',
- \ '\msansb': '𝖻',
- \ '\msansc': '𝖼',
- \ '\msansd': '𝖽',
- \ '\msanse': '𝖾',
- \ '\msansf': '𝖿',
- \ '\msansg': '𝗀',
- \ '\msansh': '𝗁',
- \ '\msansi': '𝗂',
- \ '\msansj': '𝗃',
- \ '\msansk': '𝗄',
- \ '\msansl': '𝗅',
- \ '\msansm': '𝗆',
- \ '\msansn': '𝗇',
- \ '\msanso': '𝗈',
- \ '\msansp': '𝗉',
- \ '\msansq': '𝗊',
- \ '\msansr': '𝗋',
- \ '\msanss': '𝗌',
- \ '\msanst': '𝗍',
- \ '\msansu': '𝗎',
- \ '\msansv': '𝗏',
- \ '\msansw': '𝗐',
- \ '\msansx': '𝗑',
- \ '\msansy': '𝗒',
- \ '\msansz': '𝗓',
- \ '\mbfsansA': '𝗔',
- \ '\mbfsansB': '𝗕',
- \ '\mbfsansC': '𝗖',
- \ '\mbfsansD': '𝗗',
- \ '\mbfsansE': '𝗘',
- \ '\mbfsansF': '𝗙',
- \ '\mbfsansG': '𝗚',
- \ '\mbfsansH': '𝗛',
- \ '\mbfsansI': '𝗜',
- \ '\mbfsansJ': '𝗝',
- \ '\mbfsansK': '𝗞',
- \ '\mbfsansL': '𝗟',
- \ '\mbfsansM': '𝗠',
- \ '\mbfsansN': '𝗡',
- \ '\mbfsansO': '𝗢',
- \ '\mbfsansP': '𝗣',
- \ '\mbfsansQ': '𝗤',
- \ '\mbfsansR': '𝗥',
- \ '\mbfsansS': '𝗦',
- \ '\mbfsansT': '𝗧',
- \ '\mbfsansU': '𝗨',
- \ '\mbfsansV': '𝗩',
- \ '\mbfsansW': '𝗪',
- \ '\mbfsansX': '𝗫',
- \ '\mbfsansY': '𝗬',
- \ '\mbfsansZ': '𝗭',
- \ '\mbfsansa': '𝗮',
- \ '\mbfsansb': '𝗯',
- \ '\mbfsansc': '𝗰',
- \ '\mbfsansd': '𝗱',
- \ '\mbfsanse': '𝗲',
- \ '\mbfsansf': '𝗳',
- \ '\mbfsansg': '𝗴',
- \ '\mbfsansh': '𝗵',
- \ '\mbfsansi': '𝗶',
- \ '\mbfsansj': '𝗷',
- \ '\mbfsansk': '𝗸',
- \ '\mbfsansl': '𝗹',
- \ '\mbfsansm': '𝗺',
- \ '\mbfsansn': '𝗻',
- \ '\mbfsanso': '𝗼',
- \ '\mbfsansp': '𝗽',
- \ '\mbfsansq': '𝗾',
- \ '\mbfsansr': '𝗿',
- \ '\mbfsanss': '𝘀',
- \ '\mbfsanst': '𝘁',
- \ '\mbfsansu': '𝘂',
- \ '\mbfsansv': '𝘃',
- \ '\mbfsansw': '𝘄',
- \ '\mbfsansx': '𝘅',
- \ '\mbfsansy': '𝘆',
- \ '\mbfsansz': '𝘇',
- \ '\mitsansA': '𝘈',
- \ '\mitsansB': '𝘉',
- \ '\mitsansC': '𝘊',
- \ '\mitsansD': '𝘋',
- \ '\mitsansE': '𝘌',
- \ '\mitsansF': '𝘍',
- \ '\mitsansG': '𝘎',
- \ '\mitsansH': '𝘏',
- \ '\mitsansI': '𝘐',
- \ '\mitsansJ': '𝘑',
- \ '\mitsansK': '𝘒',
- \ '\mitsansL': '𝘓',
- \ '\mitsansM': '𝘔',
- \ '\mitsansN': '𝘕',
- \ '\mitsansO': '𝘖',
- \ '\mitsansP': '𝘗',
- \ '\mitsansQ': '𝘘',
- \ '\mitsansR': '𝘙',
- \ '\mitsansS': '𝘚',
- \ '\mitsansT': '𝘛',
- \ '\mitsansU': '𝘜',
- \ '\mitsansV': '𝘝',
- \ '\mitsansW': '𝘞',
- \ '\mitsansX': '𝘟',
- \ '\mitsansY': '𝘠',
- \ '\mitsansZ': '𝘡',
- \ '\mitsansa': '𝘢',
- \ '\mitsansb': '𝘣',
- \ '\mitsansc': '𝘤',
- \ '\mitsansd': '𝘥',
- \ '\mitsanse': '𝘦',
- \ '\mitsansf': '𝘧',
- \ '\mitsansg': '𝘨',
- \ '\mitsansh': '𝘩',
- \ '\mitsansi': '𝘪',
- \ '\mitsansj': '𝘫',
- \ '\mitsansk': '𝘬',
- \ '\mitsansl': '𝘭',
- \ '\mitsansm': '𝘮',
- \ '\mitsansn': '𝘯',
- \ '\mitsanso': '𝘰',
- \ '\mitsansp': '𝘱',
- \ '\mitsansq': '𝘲',
- \ '\mitsansr': '𝘳',
- \ '\mitsanss': '𝘴',
- \ '\mitsanst': '𝘵',
- \ '\mitsansu': '𝘶',
- \ '\mitsansv': '𝘷',
- \ '\mitsansw': '𝘸',
- \ '\mitsansx': '𝘹',
- \ '\mitsansy': '𝘺',
- \ '\mitsansz': '𝘻',
- \ '\mbfitsansA': '𝘼',
- \ '\mbfitsansB': '𝘽',
- \ '\mbfitsansC': '𝘾',
- \ '\mbfitsansD': '𝘿',
- \ '\mbfitsansE': '𝙀',
- \ '\mbfitsansF': '𝙁',
- \ '\mbfitsansG': '𝙂',
- \ '\mbfitsansH': '𝙃',
- \ '\mbfitsansI': '𝙄',
- \ '\mbfitsansJ': '𝙅',
- \ '\mbfitsansK': '𝙆',
- \ '\mbfitsansL': '𝙇',
- \ '\mbfitsansM': '𝙈',
- \ '\mbfitsansN': '𝙉',
- \ '\mbfitsansO': '𝙊',
- \ '\mbfitsansP': '𝙋',
- \ '\mbfitsansQ': '𝙌',
- \ '\mbfitsansR': '𝙍',
- \ '\mbfitsansS': '𝙎',
- \ '\mbfitsansT': '𝙏',
- \ '\mbfitsansU': '𝙐',
- \ '\mbfitsansV': '𝙑',
- \ '\mbfitsansW': '𝙒',
- \ '\mbfitsansX': '𝙓',
- \ '\mbfitsansY': '𝙔',
- \ '\mbfitsansZ': '𝙕',
- \ '\mbfitsansa': '𝙖',
- \ '\mbfitsansb': '𝙗',
- \ '\mbfitsansc': '𝙘',
- \ '\mbfitsansd': '𝙙',
- \ '\mbfitsanse': '𝙚',
- \ '\mbfitsansf': '𝙛',
- \ '\mbfitsansg': '𝙜',
- \ '\mbfitsansh': '𝙝',
- \ '\mbfitsansi': '𝙞',
- \ '\mbfitsansj': '𝙟',
- \ '\mbfitsansk': '𝙠',
- \ '\mbfitsansl': '𝙡',
- \ '\mbfitsansm': '𝙢',
- \ '\mbfitsansn': '𝙣',
- \ '\mbfitsanso': '𝙤',
- \ '\mbfitsansp': '𝙥',
- \ '\mbfitsansq': '𝙦',
- \ '\mbfitsansr': '𝙧',
- \ '\mbfitsanss': '𝙨',
- \ '\mbfitsanst': '𝙩',
- \ '\mbfitsansu': '𝙪',
- \ '\mbfitsansv': '𝙫',
- \ '\mbfitsansw': '𝙬',
- \ '\mbfitsansx': '𝙭',
- \ '\mbfitsansy': '𝙮',
- \ '\mbfitsansz': '𝙯',
- \ '\mttA': '𝙰',
- \ '\mttB': '𝙱',
- \ '\mttC': '𝙲',
- \ '\mttD': '𝙳',
- \ '\mttE': '𝙴',
- \ '\mttF': '𝙵',
- \ '\mttG': '𝙶',
- \ '\mttH': '𝙷',
- \ '\mttI': '𝙸',
- \ '\mttJ': '𝙹',
- \ '\mttK': '𝙺',
- \ '\mttL': '𝙻',
- \ '\mttM': '𝙼',
- \ '\mttN': '𝙽',
- \ '\mttO': '𝙾',
- \ '\mttP': '𝙿',
- \ '\mttQ': '𝚀',
- \ '\mttR': '𝚁',
- \ '\mttS': '𝚂',
- \ '\mttT': '𝚃',
- \ '\mttU': '𝚄',
- \ '\mttV': '𝚅',
- \ '\mttW': '𝚆',
- \ '\mttX': '𝚇',
- \ '\mttY': '𝚈',
- \ '\mttZ': '𝚉',
- \ '\mtta': '𝚊',
- \ '\mttb': '𝚋',
- \ '\mttc': '𝚌',
- \ '\mttd': '𝚍',
- \ '\mtte': '𝚎',
- \ '\mttf': '𝚏',
- \ '\mttg': '𝚐',
- \ '\mtth': '𝚑',
- \ '\mtti': '𝚒',
- \ '\mttj': '𝚓',
- \ '\mttk': '𝚔',
- \ '\mttl': '𝚕',
- \ '\mttm': '𝚖',
- \ '\mttn': '𝚗',
- \ '\mtto': '𝚘',
- \ '\mttp': '𝚙',
- \ '\mttq': '𝚚',
- \ '\mttr': '𝚛',
- \ '\mtts': '𝚜',
- \ '\mttt': '𝚝',
- \ '\mttu': '𝚞',
- \ '\mttv': '𝚟',
- \ '\mttw': '𝚠',
- \ '\mttx': '𝚡',
- \ '\mtty': '𝚢',
- \ '\mttz': '𝚣',
- \ '\imath': '𝚤',
- \ '\jmath': '𝚥',
- \ '\mbfAlpha': '𝚨',
- \ '\mbfBeta': '𝚩',
- \ '\mbfGamma': '𝚪',
- \ '\mbfDelta': '𝚫',
- \ '\mbfEpsilon': '𝚬',
- \ '\mbfZeta': '𝚭',
- \ '\mbfEta': '𝚮',
- \ '\mbfTheta': '𝚯',
- \ '\mbfIota': '𝚰',
- \ '\mbfKappa': '𝚱',
- \ '\mbfLambda': '𝚲',
- \ '\mbfMu': '𝚳',
- \ '\mbfNu': '𝚴',
- \ '\mbfXi': '𝚵',
- \ '\mbfOmicron': '𝚶',
- \ '\mbfPi': '𝚷',
- \ '\mbfRho': '𝚸',
- \ '\mbfvarTheta': '𝚹',
- \ '\mbfSigma': '𝚺',
- \ '\mbfTau': '𝚻',
- \ '\mbfUpsilon': '𝚼',
- \ '\mbfPhi': '𝚽',
- \ '\mbfChi': '𝚾',
- \ '\mbfPsi': '𝚿',
- \ '\mbfOmega': '𝛀',
- \ '\mbfnabla': '𝛁',
- \ '\mbfalpha': '𝛂',
- \ '\mbfbeta': '𝛃',
- \ '\mbfgamma': '𝛄',
- \ '\mbfdelta': '𝛅',
- \ '\mbfepsilon': '𝛆',
- \ '\mbfzeta': '𝛇',
- \ '\mbfeta': '𝛈',
- \ '\mbftheta': '𝛉',
- \ '\mbfiota': '𝛊',
- \ '\mbfkappa': '𝛋',
- \ '\mbflambda': '𝛌',
- \ '\mbfmu': '𝛍',
- \ '\mbfnu': '𝛎',
- \ '\mbfxi': '𝛏',
- \ '\mbfomicron': '𝛐',
- \ '\mbfpi': '𝛑',
- \ '\mbfrho': '𝛒',
- \ '\mbfvarsigma': '𝛓',
- \ '\mbfsigma': '𝛔',
- \ '\mbftau': '𝛕',
- \ '\mbfupsilon': '𝛖',
- \ '\mbfvarphi': '𝛗',
- \ '\mbfchi': '𝛘',
- \ '\mbfpsi': '𝛙',
- \ '\mbfomega': '𝛚',
- \ '\mbfpartial': '𝛛',
- \ '\mbfvarepsilon': '𝛜',
- \ '\mbfvartheta': '𝛝',
- \ '\mbfvarkappa': '𝛞',
- \ '\mbfphi': '𝛟',
- \ '\mbfvarrho': '𝛠',
- \ '\mbfvarpi': '𝛡',
- \ '\mitAlpha': '𝛢',
- \ '\mitBeta': '𝛣',
- \ '\mitGamma': '𝛤',
- \ '\mitDelta': '𝛥',
- \ '\mitEpsilon': '𝛦',
- \ '\mitZeta': '𝛧',
- \ '\mitEta': '𝛨',
- \ '\mitTheta': '𝛩',
- \ '\mitIota': '𝛪',
- \ '\mitKappa': '𝛫',
- \ '\mitLambda': '𝛬',
- \ '\mitMu': '𝛭',
- \ '\mitNu': '𝛮',
- \ '\mitXi': '𝛯',
- \ '\mitOmicron': '𝛰',
- \ '\mitPi': '𝛱',
- \ '\mitRho': '𝛲',
- \ '\mitvarTheta': '𝛳',
- \ '\mitSigma': '𝛴',
- \ '\mitTau': '𝛵',
- \ '\mitUpsilon': '𝛶',
- \ '\mitPhi': '𝛷',
- \ '\mitChi': '𝛸',
- \ '\mitPsi': '𝛹',
- \ '\mitOmega': '𝛺',
- \ '\mitnabla': '𝛻',
- \ '\mitalpha': '𝛼',
- \ '\mitbeta': '𝛽',
- \ '\mitgamma': '𝛾',
- \ '\mitdelta': '𝛿',
- \ '\mitepsilon': '𝜀',
- \ '\mitzeta': '𝜁',
- \ '\miteta': '𝜂',
- \ '\mittheta': '𝜃',
- \ '\mitiota': '𝜄',
- \ '\mitkappa': '𝜅',
- \ '\mitlambda': '𝜆',
- \ '\mitmu': '𝜇',
- \ '\mitnu': '𝜈',
- \ '\mitxi': '𝜉',
- \ '\mitomicron': '𝜊',
- \ '\mitpi': '𝜋',
- \ '\mitrho': '𝜌',
- \ '\mitvarsigma': '𝜍',
- \ '\mitsigma': '𝜎',
- \ '\mittau': '𝜏',
- \ '\mitupsilon': '𝜐',
- \ '\mitphi': '𝜑',
- \ '\mitchi': '𝜒',
- \ '\mitpsi': '𝜓',
- \ '\mitomega': '𝜔',
- \ '\mitpartial': '𝜕',
- \ '\mitvarepsilon': '𝜖',
- \ '\mitvartheta': '𝜗',
- \ '\mitvarkappa': '𝜘',
- \ '\mitvarphi': '𝜙',
- \ '\mitvarrho': '𝜚',
- \ '\mitvarpi': '𝜛',
- \ '\mbfitAlpha': '𝜜',
- \ '\mbfitBeta': '𝜝',
- \ '\mbfitGamma': '𝜞',
- \ '\mbfitDelta': '𝜟',
- \ '\mbfitEpsilon': '𝜠',
- \ '\mbfitZeta': '𝜡',
- \ '\mbfitEta': '𝜢',
- \ '\mbfitTheta': '𝜣',
- \ '\mbfitIota': '𝜤',
- \ '\mbfitKappa': '𝜥',
- \ '\mbfitLambda': '𝜦',
- \ '\mbfitMu': '𝜧',
- \ '\mbfitNu': '𝜨',
- \ '\mbfitXi': '𝜩',
- \ '\mbfitOmicron': '𝜪',
- \ '\mbfitPi': '𝜫',
- \ '\mbfitRho': '𝜬',
- \ '\mbfitvarTheta': '𝜭',
- \ '\mbfitSigma': '𝜮',
- \ '\mbfitTau': '𝜯',
- \ '\mbfitUpsilon': '𝜰',
- \ '\mbfitPhi': '𝜱',
- \ '\mbfitChi': '𝜲',
- \ '\mbfitPsi': '𝜳',
- \ '\mbfitOmega': '𝜴',
- \ '\mbfitnabla': '𝜵',
- \ '\mbfitalpha': '𝜶',
- \ '\mbfitbeta': '𝜷',
- \ '\mbfitgamma': '𝜸',
- \ '\mbfitdelta': '𝜹',
- \ '\mbfitepsilon': '𝜺',
- \ '\mbfitzeta': '𝜻',
- \ '\mbfiteta': '𝜼',
- \ '\mbfittheta': '𝜽',
- \ '\mbfitiota': '𝜾',
- \ '\mbfitkappa': '𝜿',
- \ '\mbfitlambda': '𝝀',
- \ '\mbfitmu': '𝝁',
- \ '\mbfitnu': '𝝂',
- \ '\mbfitxi': '𝝃',
- \ '\mbfitomicron': '𝝄',
- \ '\mbfitpi': '𝝅',
- \ '\mbfitrho': '𝝆',
- \ '\mbfitvarsigma': '𝝇',
- \ '\mbfitsigma': '𝝈',
- \ '\mbfittau': '𝝉',
- \ '\mbfitupsilon': '𝝊',
- \ '\mbfitphi': '𝝋',
- \ '\mbfitchi': '𝝌',
- \ '\mbfitpsi': '𝝍',
- \ '\mbfitomega': '𝝎',
- \ '\mbfitpartial': '𝝏',
- \ '\mbfitvarepsilon': '𝝐',
- \ '\mbfitvartheta': '𝝑',
- \ '\mbfitvarkappa': '𝝒',
- \ '\mbfitvarphi': '𝝓',
- \ '\mbfitvarrho': '𝝔',
- \ '\mbfitvarpi': '𝝕',
- \ '\mbfsansAlpha': '𝝖',
- \ '\mbfsansBeta': '𝝗',
- \ '\mbfsansGamma': '𝝘',
- \ '\mbfsansDelta': '𝝙',
- \ '\mbfsansEpsilon': '𝝚',
- \ '\mbfsansZeta': '𝝛',
- \ '\mbfsansEta': '𝝜',
- \ '\mbfsansTheta': '𝝝',
- \ '\mbfsansIota': '𝝞',
- \ '\mbfsansKappa': '𝝟',
- \ '\mbfsansLambda': '𝝠',
- \ '\mbfsansMu': '𝝡',
- \ '\mbfsansNu': '𝝢',
- \ '\mbfsansXi': '𝝣',
- \ '\mbfsansOmicron': '𝝤',
- \ '\mbfsansPi': '𝝥',
- \ '\mbfsansRho': '𝝦',
- \ '\mbfsansvarTheta': '𝝧',
- \ '\mbfsansSigma': '𝝨',
- \ '\mbfsansTau': '𝝩',
- \ '\mbfsansUpsilon': '𝝪',
- \ '\mbfsansPhi': '𝝫',
- \ '\mbfsansChi': '𝝬',
- \ '\mbfsansPsi': '𝝭',
- \ '\mbfsansOmega': '𝝮',
- \ '\mbfsansnabla': '𝝯',
- \ '\mbfsansalpha': '𝝰',
- \ '\mbfsansbeta': '𝝱',
- \ '\mbfsansgamma': '𝝲',
- \ '\mbfsansdelta': '𝝳',
- \ '\mbfsansepsilon': '𝝴',
- \ '\mbfsanszeta': '𝝵',
- \ '\mbfsanseta': '𝝶',
- \ '\mbfsanstheta': '𝝷',
- \ '\mbfsansiota': '𝝸',
- \ '\mbfsanskappa': '𝝹',
- \ '\mbfsanslambda': '𝝺',
- \ '\mbfsansmu': '𝝻',
- \ '\mbfsansnu': '𝝼',
- \ '\mbfsansxi': '𝝽',
- \ '\mbfsansomicron': '𝝾',
- \ '\mbfsanspi': '𝝿',
- \ '\mbfsansrho': '𝞀',
- \ '\mbfsansvarsigma': '𝞁',
- \ '\mbfsanssigma': '𝞂',
- \ '\mbfsanstau': '𝞃',
- \ '\mbfsansupsilon': '𝞄',
- \ '\mbfsansphi': '𝞅',
- \ '\mbfsanschi': '𝞆',
- \ '\mbfsanspsi': '𝞇',
- \ '\mbfsansomega': '𝞈',
- \ '\mbfsanspartial': '𝞉',
- \ '\mbfsansvarepsilon': '𝞊',
- \ '\mbfsansvartheta': '𝞋',
- \ '\mbfsansvarkappa': '𝞌',
- \ '\mbfsansvarphi': '𝞍',
- \ '\mbfsansvarrho': '𝞎',
- \ '\mbfsansvarpi': '𝞏',
- \ '\mbfitsansAlpha': '𝞐',
- \ '\mbfitsansBeta': '𝞑',
- \ '\mbfitsansGamma': '𝞒',
- \ '\mbfitsansDelta': '𝞓',
- \ '\mbfitsansEpsilon': '𝞔',
- \ '\mbfitsansZeta': '𝞕',
- \ '\mbfitsansEta': '𝞖',
- \ '\mbfitsansTheta': '𝞗',
- \ '\mbfitsansIota': '𝞘',
- \ '\mbfitsansKappa': '𝞙',
- \ '\mbfitsansLambda': '𝞚',
- \ '\mbfitsansMu': '𝞛',
- \ '\mbfitsansNu': '𝞜',
- \ '\mbfitsansXi': '𝞝',
- \ '\mbfitsansOmicron': '𝞞',
- \ '\mbfitsansPi': '𝞟',
- \ '\mbfitsansRho': '𝞠',
- \ '\mbfitsansvarTheta': '𝞡',
- \ '\mbfitsansSigma': '𝞢',
- \ '\mbfitsansTau': '𝞣',
- \ '\mbfitsansUpsilon': '𝞤',
- \ '\mbfitsansPhi': '𝞥',
- \ '\mbfitsansChi': '𝞦',
- \ '\mbfitsansPsi': '𝞧',
- \ '\mbfitsansOmega': '𝞨',
- \ '\mbfitsansnabla': '𝞩',
- \ '\mbfitsansalpha': '𝞪',
- \ '\mbfitsansbeta': '𝞫',
- \ '\mbfitsansgamma': '𝞬',
- \ '\mbfitsansdelta': '𝞭',
- \ '\mbfitsansepsilon': '𝞮',
- \ '\mbfitsanszeta': '𝞯',
- \ '\mbfitsanseta': '𝞰',
- \ '\mbfitsanstheta': '𝞱',
- \ '\mbfitsansiota': '𝞲',
- \ '\mbfitsanskappa': '𝞳',
- \ '\mbfitsanslambda': '𝞴',
- \ '\mbfitsansmu': '𝞵',
- \ '\mbfitsansnu': '𝞶',
- \ '\mbfitsansxi': '𝞷',
- \ '\mbfitsansomicron': '𝞸',
- \ '\mbfitsanspi': '𝞹',
- \ '\mbfitsansrho': '𝞺',
- \ '\mbfitsansvarsigma': '𝞻',
- \ '\mbfitsanssigma': '𝞼',
- \ '\mbfitsanstau': '𝞽',
- \ '\mbfitsansupsilon': '𝞾',
- \ '\mbfitsansphi': '𝞿',
- \ '\mbfitsanschi': '𝟀',
- \ '\mbfitsanspsi': '𝟁',
- \ '\mbfitsansomega': '𝟂',
- \ '\mbfitsanspartial': '𝟃',
- \ '\mbfitsansvarepsilon': '𝟄',
- \ '\mbfitsansvartheta': '𝟅',
- \ '\mbfitsansvarkappa': '𝟆',
- \ '\mbfitsansvarphi': '𝟇',
- \ '\mbfitsansvarrho': '𝟈',
- \ '\mbfitsansvarpi': '𝟉',
- \ '\mbfDigamma': '𝟊',
- \ '\mbfdigamma': '𝟋',
- \ '\mbfzero': '𝟎',
- \ '\mbfone': '𝟏',
- \ '\mbftwo': '𝟐',
- \ '\mbfthree': '𝟑',
- \ '\mbffour': '𝟒',
- \ '\mbffive': '𝟓',
- \ '\mbfsix': '𝟔',
- \ '\mbfseven': '𝟕',
- \ '\mbfeight': '𝟖',
- \ '\mbfnine': '𝟗',
- \ '\Bbbzero': '𝟘',
- \ '\Bbbone': '𝟙',
- \ '\Bbbtwo': '𝟚',
- \ '\Bbbthree': '𝟛',
- \ '\Bbbfour': '𝟜',
- \ '\Bbbfive': '𝟝',
- \ '\Bbbsix': '𝟞',
- \ '\Bbbseven': '𝟟',
- \ '\Bbbeight': '𝟠',
- \ '\Bbbnine': '𝟡',
- \ '\msanszero': '𝟢',
- \ '\msansone': '𝟣',
- \ '\msanstwo': '𝟤',
- \ '\msansthree': '𝟥',
- \ '\msansfour': '𝟦',
- \ '\msansfive': '𝟧',
- \ '\msanssix': '𝟨',
- \ '\msansseven': '𝟩',
- \ '\msanseight': '𝟪',
- \ '\msansnine': '𝟫',
- \ '\mbfsanszero': '𝟬',
- \ '\mbfsansone': '𝟭',
- \ '\mbfsanstwo': '𝟮',
- \ '\mbfsansthree': '𝟯',
- \ '\mbfsansfour': '𝟰',
- \ '\mbfsansfive': '𝟱',
- \ '\mbfsanssix': '𝟲',
- \ '\mbfsansseven': '𝟳',
- \ '\mbfsanseight': '𝟴',
- \ '\mbfsansnine': '𝟵',
- \ '\mttzero': '𝟶',
- \ '\mttone': '𝟷',
- \ '\mtttwo': '𝟸',
- \ '\mttthree': '𝟹',
- \ '\mttfour': '𝟺',
- \ '\mttfive': '𝟻',
- \ '\mttsix': '𝟼',
- \ '\mttseven': '𝟽',
- \ '\mtteight': '𝟾',
- \ '\mttnine': '𝟿',
+ \ '\bfA': '𝐀',
+ \ '\bfB': '𝐁',
+ \ '\bfC': '𝐂',
+ \ '\bfD': '𝐃',
+ \ '\bfE': '𝐄',
+ \ '\bfF': '𝐅',
+ \ '\bfG': '𝐆',
+ \ '\bfH': '𝐇',
+ \ '\bfI': '𝐈',
+ \ '\bfJ': '𝐉',
+ \ '\bfK': '𝐊',
+ \ '\bfL': '𝐋',
+ \ '\bfM': '𝐌',
+ \ '\bfN': '𝐍',
+ \ '\bfO': '𝐎',
+ \ '\bfP': '𝐏',
+ \ '\bfQ': '𝐐',
+ \ '\bfR': '𝐑',
+ \ '\bfS': '𝐒',
+ \ '\bfT': '𝐓',
+ \ '\bfU': '𝐔',
+ \ '\bfV': '𝐕',
+ \ '\bfW': '𝐖',
+ \ '\bfX': '𝐗',
+ \ '\bfY': '𝐘',
+ \ '\bfZ': '𝐙',
+ \ '\bfa': '𝐚',
+ \ '\bfb': '𝐛',
+ \ '\bfc': '𝐜',
+ \ '\bfd': '𝐝',
+ \ '\bfe': '𝐞',
+ \ '\bff': '𝐟',
+ \ '\bfg': '𝐠',
+ \ '\bfh': '𝐡',
+ \ '\bfi': '𝐢',
+ \ '\bfj': '𝐣',
+ \ '\bfk': '𝐤',
+ \ '\bfl': '𝐥',
+ \ '\bfm': '𝐦',
+ \ '\bfn': '𝐧',
+ \ '\bfo': '𝐨',
+ \ '\bfp': '𝐩',
+ \ '\bfq': '𝐪',
+ \ '\bfr': '𝐫',
+ \ '\bfs': '𝐬',
+ \ '\bft': '𝐭',
+ \ '\bfu': '𝐮',
+ \ '\bfv': '𝐯',
+ \ '\bfw': '𝐰',
+ \ '\bfx': '𝐱',
+ \ '\bfy': '𝐲',
+ \ '\bfz': '𝐳',
+ \ '\itA': '𝐴',
+ \ '\itB': '𝐵',
+ \ '\itC': '𝐶',
+ \ '\itD': '𝐷',
+ \ '\itE': '𝐸',
+ \ '\itF': '𝐹',
+ \ '\itG': '𝐺',
+ \ '\itH': '𝐻',
+ \ '\itI': '𝐼',
+ \ '\itJ': '𝐽',
+ \ '\itK': '𝐾',
+ \ '\itL': '𝐿',
+ \ '\itM': '𝑀',
+ \ '\itN': '𝑁',
+ \ '\itO': '𝑂',
+ \ '\itP': '𝑃',
+ \ '\itQ': '𝑄',
+ \ '\itR': '𝑅',
+ \ '\itS': '𝑆',
+ \ '\itT': '𝑇',
+ \ '\itU': '𝑈',
+ \ '\itV': '𝑉',
+ \ '\itW': '𝑊',
+ \ '\itX': '𝑋',
+ \ '\itY': '𝑌',
+ \ '\itZ': '𝑍',
+ \ '\ita': '𝑎',
+ \ '\itb': '𝑏',
+ \ '\itc': '𝑐',
+ \ '\itd': '𝑑',
+ \ '\ite': '𝑒',
+ \ '\itf': '𝑓',
+ \ '\itg': '𝑔',
+ \ '\iti': '𝑖',
+ \ '\itj': '𝑗',
+ \ '\itk': '𝑘',
+ \ '\itl': '𝑙',
+ \ '\itm': '𝑚',
+ \ '\itn': '𝑛',
+ \ '\ito': '𝑜',
+ \ '\itp': '𝑝',
+ \ '\itq': '𝑞',
+ \ '\itr': '𝑟',
+ \ '\its': '𝑠',
+ \ '\itt': '𝑡',
+ \ '\itu': '𝑢',
+ \ '\itv': '𝑣',
+ \ '\itw': '𝑤',
+ \ '\itx': '𝑥',
+ \ '\ity': '𝑦',
+ \ '\itz': '𝑧',
+ \ '\biA': '𝑨',
+ \ '\biB': '𝑩',
+ \ '\biC': '𝑪',
+ \ '\biD': '𝑫',
+ \ '\biE': '𝑬',
+ \ '\biF': '𝑭',
+ \ '\biG': '𝑮',
+ \ '\biH': '𝑯',
+ \ '\biI': '𝑰',
+ \ '\biJ': '𝑱',
+ \ '\biK': '𝑲',
+ \ '\biL': '𝑳',
+ \ '\biM': '𝑴',
+ \ '\biN': '𝑵',
+ \ '\biO': '𝑶',
+ \ '\biP': '𝑷',
+ \ '\biQ': '𝑸',
+ \ '\biR': '𝑹',
+ \ '\biS': '𝑺',
+ \ '\biT': '𝑻',
+ \ '\biU': '𝑼',
+ \ '\biV': '𝑽',
+ \ '\biW': '𝑾',
+ \ '\biX': '𝑿',
+ \ '\biY': '𝒀',
+ \ '\biZ': '𝒁',
+ \ '\bia': '𝒂',
+ \ '\bib': '𝒃',
+ \ '\bic': '𝒄',
+ \ '\bid': '𝒅',
+ \ '\bie': '𝒆',
+ \ '\bif': '𝒇',
+ \ '\big': '𝒈',
+ \ '\bih': '𝒉',
+ \ '\bii': '𝒊',
+ \ '\bij': '𝒋',
+ \ '\bik': '𝒌',
+ \ '\bil': '𝒍',
+ \ '\bim': '𝒎',
+ \ '\bin': '𝒏',
+ \ '\bio': '𝒐',
+ \ '\bip': '𝒑',
+ \ '\biq': '𝒒',
+ \ '\bir': '𝒓',
+ \ '\bis': '𝒔',
+ \ '\bit': '𝒕',
+ \ '\biu': '𝒖',
+ \ '\biv': '𝒗',
+ \ '\biw': '𝒘',
+ \ '\bix': '𝒙',
+ \ '\biy': '𝒚',
+ \ '\biz': '𝒛',
+ \ '\scrA': '𝒜',
+ \ '\scrC': '𝒞',
+ \ '\scrD': '𝒟',
+ \ '\scrG': '𝒢',
+ \ '\scrJ': '𝒥',
+ \ '\scrK': '𝒦',
+ \ '\scrN': '𝒩',
+ \ '\scrO': '𝒪',
+ \ '\scrP': '𝒫',
+ \ '\scrQ': '𝒬',
+ \ '\scrS': '𝒮',
+ \ '\scrT': '𝒯',
+ \ '\scrU': '𝒰',
+ \ '\scrV': '𝒱',
+ \ '\scrW': '𝒲',
+ \ '\scrX': '𝒳',
+ \ '\scrY': '𝒴',
+ \ '\scrZ': '𝒵',
+ \ '\scra': '𝒶',
+ \ '\scrb': '𝒷',
+ \ '\scrc': '𝒸',
+ \ '\scrd': '𝒹',
+ \ '\scrf': '𝒻',
+ \ '\scrh': '𝒽',
+ \ '\scri': '𝒾',
+ \ '\scrj': '𝒿',
+ \ '\scrk': '𝓀',
+ \ '\scrl': '𝓁',
+ \ '\scrm': '𝓂',
+ \ '\scrn': '𝓃',
+ \ '\scrp': '𝓅',
+ \ '\scrq': '𝓆',
+ \ '\scrr': '𝓇',
+ \ '\scrs': '𝓈',
+ \ '\scrt': '𝓉',
+ \ '\scru': '𝓊',
+ \ '\scrv': '𝓋',
+ \ '\scrw': '𝓌',
+ \ '\scrx': '𝓍',
+ \ '\scry': '𝓎',
+ \ '\scrz': '𝓏',
+ \ '\bscrA': '𝓐',
+ \ '\bscrB': '𝓑',
+ \ '\bscrC': '𝓒',
+ \ '\bscrD': '𝓓',
+ \ '\bscrE': '𝓔',
+ \ '\bscrF': '𝓕',
+ \ '\bscrG': '𝓖',
+ \ '\bscrH': '𝓗',
+ \ '\bscrI': '𝓘',
+ \ '\bscrJ': '𝓙',
+ \ '\bscrK': '𝓚',
+ \ '\bscrL': '𝓛',
+ \ '\bscrM': '𝓜',
+ \ '\bscrN': '𝓝',
+ \ '\bscrO': '𝓞',
+ \ '\bscrP': '𝓟',
+ \ '\bscrQ': '𝓠',
+ \ '\bscrR': '𝓡',
+ \ '\bscrS': '𝓢',
+ \ '\bscrT': '𝓣',
+ \ '\bscrU': '𝓤',
+ \ '\bscrV': '𝓥',
+ \ '\bscrW': '𝓦',
+ \ '\bscrX': '𝓧',
+ \ '\bscrY': '𝓨',
+ \ '\bscrZ': '𝓩',
+ \ '\bscra': '𝓪',
+ \ '\bscrb': '𝓫',
+ \ '\bscrc': '𝓬',
+ \ '\bscrd': '𝓭',
+ \ '\bscre': '𝓮',
+ \ '\bscrf': '𝓯',
+ \ '\bscrg': '𝓰',
+ \ '\bscrh': '𝓱',
+ \ '\bscri': '𝓲',
+ \ '\bscrj': '𝓳',
+ \ '\bscrk': '𝓴',
+ \ '\bscrl': '𝓵',
+ \ '\bscrm': '𝓶',
+ \ '\bscrn': '𝓷',
+ \ '\bscro': '𝓸',
+ \ '\bscrp': '𝓹',
+ \ '\bscrq': '𝓺',
+ \ '\bscrr': '𝓻',
+ \ '\bscrs': '𝓼',
+ \ '\bscrt': '𝓽',
+ \ '\bscru': '𝓾',
+ \ '\bscrv': '𝓿',
+ \ '\bscrw': '𝔀',
+ \ '\bscrx': '𝔁',
+ \ '\bscry': '𝔂',
+ \ '\bscrz': '𝔃',
+ \ '\frakA': '𝔄',
+ \ '\frakB': '𝔅',
+ \ '\frakD': '𝔇',
+ \ '\frakE': '𝔈',
+ \ '\frakF': '𝔉',
+ \ '\frakG': '𝔊',
+ \ '\frakJ': '𝔍',
+ \ '\frakK': '𝔎',
+ \ '\frakL': '𝔏',
+ \ '\frakM': '𝔐',
+ \ '\frakN': '𝔑',
+ \ '\frakO': '𝔒',
+ \ '\frakP': '𝔓',
+ \ '\frakQ': '𝔔',
+ \ '\frakS': '𝔖',
+ \ '\frakT': '𝔗',
+ \ '\frakU': '𝔘',
+ \ '\frakV': '𝔙',
+ \ '\frakW': '𝔚',
+ \ '\frakX': '𝔛',
+ \ '\frakY': '𝔜',
+ \ '\fraka': '𝔞',
+ \ '\frakb': '𝔟',
+ \ '\frakc': '𝔠',
+ \ '\frakd': '𝔡',
+ \ '\frake': '𝔢',
+ \ '\frakf': '𝔣',
+ \ '\frakg': '𝔤',
+ \ '\frakh': '𝔥',
+ \ '\fraki': '𝔦',
+ \ '\frakj': '𝔧',
+ \ '\frakk': '𝔨',
+ \ '\frakl': '𝔩',
+ \ '\frakm': '𝔪',
+ \ '\frakn': '𝔫',
+ \ '\frako': '𝔬',
+ \ '\frakp': '𝔭',
+ \ '\frakq': '𝔮',
+ \ '\frakr': '𝔯',
+ \ '\fraks': '𝔰',
+ \ '\frakt': '𝔱',
+ \ '\fraku': '𝔲',
+ \ '\frakv': '𝔳',
+ \ '\frakw': '𝔴',
+ \ '\frakx': '𝔵',
+ \ '\fraky': '𝔶',
+ \ '\frakz': '𝔷',
+ \ '\bbA': '𝔸',
+ \ '\bbB': '𝔹',
+ \ '\bbD': '𝔻',
+ \ '\bbE': '𝔼',
+ \ '\bbF': '𝔽',
+ \ '\bbG': '𝔾',
+ \ '\bbI': '𝕀',
+ \ '\bbJ': '𝕁',
+ \ '\bbK': '𝕂',
+ \ '\bbL': '𝕃',
+ \ '\bbM': '𝕄',
+ \ '\bbO': '𝕆',
+ \ '\bbS': '𝕊',
+ \ '\bbT': '𝕋',
+ \ '\bbU': '𝕌',
+ \ '\bbV': '𝕍',
+ \ '\bbW': '𝕎',
+ \ '\bbX': '𝕏',
+ \ '\bbY': '𝕐',
+ \ '\bba': '𝕒',
+ \ '\bbb': '𝕓',
+ \ '\bbc': '𝕔',
+ \ '\bbd': '𝕕',
+ \ '\bbe': '𝕖',
+ \ '\bbf': '𝕗',
+ \ '\bbg': '𝕘',
+ \ '\bbh': '𝕙',
+ \ '\bbi': '𝕚',
+ \ '\bbj': '𝕛',
+ \ '\bbk': '𝕜',
+ \ '\bbl': '𝕝',
+ \ '\bbm': '𝕞',
+ \ '\bbn': '𝕟',
+ \ '\bbo': '𝕠',
+ \ '\bbp': '𝕡',
+ \ '\bbq': '𝕢',
+ \ '\bbr': '𝕣',
+ \ '\bbs': '𝕤',
+ \ '\bbt': '𝕥',
+ \ '\bbu': '𝕦',
+ \ '\bbv': '𝕧',
+ \ '\bbw': '𝕨',
+ \ '\bbx': '𝕩',
+ \ '\bby': '𝕪',
+ \ '\bbz': '𝕫',
+ \ '\bfrakA': '𝕬',
+ \ '\bfrakB': '𝕭',
+ \ '\bfrakC': '𝕮',
+ \ '\bfrakD': '𝕯',
+ \ '\bfrakE': '𝕰',
+ \ '\bfrakF': '𝕱',
+ \ '\bfrakG': '𝕲',
+ \ '\bfrakH': '𝕳',
+ \ '\bfrakI': '𝕴',
+ \ '\bfrakJ': '𝕵',
+ \ '\bfrakK': '𝕶',
+ \ '\bfrakL': '𝕷',
+ \ '\bfrakM': '𝕸',
+ \ '\bfrakN': '𝕹',
+ \ '\bfrakO': '𝕺',
+ \ '\bfrakP': '𝕻',
+ \ '\bfrakQ': '𝕼',
+ \ '\bfrakR': '𝕽',
+ \ '\bfrakS': '𝕾',
+ \ '\bfrakT': '𝕿',
+ \ '\bfrakU': '𝖀',
+ \ '\bfrakV': '𝖁',
+ \ '\bfrakW': '𝖂',
+ \ '\bfrakX': '𝖃',
+ \ '\bfrakY': '𝖄',
+ \ '\bfrakZ': '𝖅',
+ \ '\bfraka': '𝖆',
+ \ '\bfrakb': '𝖇',
+ \ '\bfrakc': '𝖈',
+ \ '\bfrakd': '𝖉',
+ \ '\bfrake': '𝖊',
+ \ '\bfrakf': '𝖋',
+ \ '\bfrakg': '𝖌',
+ \ '\bfrakh': '𝖍',
+ \ '\bfraki': '𝖎',
+ \ '\bfrakj': '𝖏',
+ \ '\bfrakk': '𝖐',
+ \ '\bfrakl': '𝖑',
+ \ '\bfrakm': '𝖒',
+ \ '\bfrakn': '𝖓',
+ \ '\bfrako': '𝖔',
+ \ '\bfrakp': '𝖕',
+ \ '\bfrakq': '𝖖',
+ \ '\bfrakr': '𝖗',
+ \ '\bfraks': '𝖘',
+ \ '\bfrakt': '𝖙',
+ \ '\bfraku': '𝖚',
+ \ '\bfrakv': '𝖛',
+ \ '\bfrakw': '𝖜',
+ \ '\bfrakx': '𝖝',
+ \ '\bfraky': '𝖞',
+ \ '\bfrakz': '𝖟',
+ \ '\sansA': '𝖠',
+ \ '\sansB': '𝖡',
+ \ '\sansC': '𝖢',
+ \ '\sansD': '𝖣',
+ \ '\sansE': '𝖤',
+ \ '\sansF': '𝖥',
+ \ '\sansG': '𝖦',
+ \ '\sansH': '𝖧',
+ \ '\sansI': '𝖨',
+ \ '\sansJ': '𝖩',
+ \ '\sansK': '𝖪',
+ \ '\sansL': '𝖫',
+ \ '\sansM': '𝖬',
+ \ '\sansN': '𝖭',
+ \ '\sansO': '𝖮',
+ \ '\sansP': '𝖯',
+ \ '\sansQ': '𝖰',
+ \ '\sansR': '𝖱',
+ \ '\sansS': '𝖲',
+ \ '\sansT': '𝖳',
+ \ '\sansU': '𝖴',
+ \ '\sansV': '𝖵',
+ \ '\sansW': '𝖶',
+ \ '\sansX': '𝖷',
+ \ '\sansY': '𝖸',
+ \ '\sansZ': '𝖹',
+ \ '\sansa': '𝖺',
+ \ '\sansb': '𝖻',
+ \ '\sansc': '𝖼',
+ \ '\sansd': '𝖽',
+ \ '\sanse': '𝖾',
+ \ '\sansf': '𝖿',
+ \ '\sansg': '𝗀',
+ \ '\sansh': '𝗁',
+ \ '\sansi': '𝗂',
+ \ '\sansj': '𝗃',
+ \ '\sansk': '𝗄',
+ \ '\sansl': '𝗅',
+ \ '\sansm': '𝗆',
+ \ '\sansn': '𝗇',
+ \ '\sanso': '𝗈',
+ \ '\sansp': '𝗉',
+ \ '\sansq': '𝗊',
+ \ '\sansr': '𝗋',
+ \ '\sanss': '𝗌',
+ \ '\sanst': '𝗍',
+ \ '\sansu': '𝗎',
+ \ '\sansv': '𝗏',
+ \ '\sansw': '𝗐',
+ \ '\sansx': '𝗑',
+ \ '\sansy': '𝗒',
+ \ '\sansz': '𝗓',
+ \ '\bsansA': '𝗔',
+ \ '\bsansB': '𝗕',
+ \ '\bsansC': '𝗖',
+ \ '\bsansD': '𝗗',
+ \ '\bsansE': '𝗘',
+ \ '\bsansF': '𝗙',
+ \ '\bsansG': '𝗚',
+ \ '\bsansH': '𝗛',
+ \ '\bsansI': '𝗜',
+ \ '\bsansJ': '𝗝',
+ \ '\bsansK': '𝗞',
+ \ '\bsansL': '𝗟',
+ \ '\bsansM': '𝗠',
+ \ '\bsansN': '𝗡',
+ \ '\bsansO': '𝗢',
+ \ '\bsansP': '𝗣',
+ \ '\bsansQ': '𝗤',
+ \ '\bsansR': '𝗥',
+ \ '\bsansS': '𝗦',
+ \ '\bsansT': '𝗧',
+ \ '\bsansU': '𝗨',
+ \ '\bsansV': '𝗩',
+ \ '\bsansW': '𝗪',
+ \ '\bsansX': '𝗫',
+ \ '\bsansY': '𝗬',
+ \ '\bsansZ': '𝗭',
+ \ '\bsansa': '𝗮',
+ \ '\bsansb': '𝗯',
+ \ '\bsansc': '𝗰',
+ \ '\bsansd': '𝗱',
+ \ '\bsanse': '𝗲',
+ \ '\bsansf': '𝗳',
+ \ '\bsansg': '𝗴',
+ \ '\bsansh': '𝗵',
+ \ '\bsansi': '𝗶',
+ \ '\bsansj': '𝗷',
+ \ '\bsansk': '𝗸',
+ \ '\bsansl': '𝗹',
+ \ '\bsansm': '𝗺',
+ \ '\bsansn': '𝗻',
+ \ '\bsanso': '𝗼',
+ \ '\bsansp': '𝗽',
+ \ '\bsansq': '𝗾',
+ \ '\bsansr': '𝗿',
+ \ '\bsanss': '𝘀',
+ \ '\bsanst': '𝘁',
+ \ '\bsansu': '𝘂',
+ \ '\bsansv': '𝘃',
+ \ '\bsansw': '𝘄',
+ \ '\bsansx': '𝘅',
+ \ '\bsansy': '𝘆',
+ \ '\bsansz': '𝘇',
+ \ '\isansA': '𝘈',
+ \ '\isansB': '𝘉',
+ \ '\isansC': '𝘊',
+ \ '\isansD': '𝘋',
+ \ '\isansE': '𝘌',
+ \ '\isansF': '𝘍',
+ \ '\isansG': '𝘎',
+ \ '\isansH': '𝘏',
+ \ '\isansI': '𝘐',
+ \ '\isansJ': '𝘑',
+ \ '\isansK': '𝘒',
+ \ '\isansL': '𝘓',
+ \ '\isansM': '𝘔',
+ \ '\isansN': '𝘕',
+ \ '\isansO': '𝘖',
+ \ '\isansP': '𝘗',
+ \ '\isansQ': '𝘘',
+ \ '\isansR': '𝘙',
+ \ '\isansS': '𝘚',
+ \ '\isansT': '𝘛',
+ \ '\isansU': '𝘜',
+ \ '\isansV': '𝘝',
+ \ '\isansW': '𝘞',
+ \ '\isansX': '𝘟',
+ \ '\isansY': '𝘠',
+ \ '\isansZ': '𝘡',
+ \ '\isansa': '𝘢',
+ \ '\isansb': '𝘣',
+ \ '\isansc': '𝘤',
+ \ '\isansd': '𝘥',
+ \ '\isanse': '𝘦',
+ \ '\isansf': '𝘧',
+ \ '\isansg': '𝘨',
+ \ '\isansh': '𝘩',
+ \ '\isansi': '𝘪',
+ \ '\isansj': '𝘫',
+ \ '\isansk': '𝘬',
+ \ '\isansl': '𝘭',
+ \ '\isansm': '𝘮',
+ \ '\isansn': '𝘯',
+ \ '\isanso': '𝘰',
+ \ '\isansp': '𝘱',
+ \ '\isansq': '𝘲',
+ \ '\isansr': '𝘳',
+ \ '\isanss': '𝘴',
+ \ '\isanst': '𝘵',
+ \ '\isansu': '𝘶',
+ \ '\isansv': '𝘷',
+ \ '\isansw': '𝘸',
+ \ '\isansx': '𝘹',
+ \ '\isansy': '𝘺',
+ \ '\isansz': '𝘻',
+ \ '\bisansA': '𝘼',
+ \ '\bisansB': '𝘽',
+ \ '\bisansC': '𝘾',
+ \ '\bisansD': '𝘿',
+ \ '\bisansE': '𝙀',
+ \ '\bisansF': '𝙁',
+ \ '\bisansG': '𝙂',
+ \ '\bisansH': '𝙃',
+ \ '\bisansI': '𝙄',
+ \ '\bisansJ': '𝙅',
+ \ '\bisansK': '𝙆',
+ \ '\bisansL': '𝙇',
+ \ '\bisansM': '𝙈',
+ \ '\bisansN': '𝙉',
+ \ '\bisansO': '𝙊',
+ \ '\bisansP': '𝙋',
+ \ '\bisansQ': '𝙌',
+ \ '\bisansR': '𝙍',
+ \ '\bisansS': '𝙎',
+ \ '\bisansT': '𝙏',
+ \ '\bisansU': '𝙐',
+ \ '\bisansV': '𝙑',
+ \ '\bisansW': '𝙒',
+ \ '\bisansX': '𝙓',
+ \ '\bisansY': '𝙔',
+ \ '\bisansZ': '𝙕',
+ \ '\bisansa': '𝙖',
+ \ '\bisansb': '𝙗',
+ \ '\bisansc': '𝙘',
+ \ '\bisansd': '𝙙',
+ \ '\bisanse': '𝙚',
+ \ '\bisansf': '𝙛',
+ \ '\bisansg': '𝙜',
+ \ '\bisansh': '𝙝',
+ \ '\bisansi': '𝙞',
+ \ '\bisansj': '𝙟',
+ \ '\bisansk': '𝙠',
+ \ '\bisansl': '𝙡',
+ \ '\bisansm': '𝙢',
+ \ '\bisansn': '𝙣',
+ \ '\bisanso': '𝙤',
+ \ '\bisansp': '𝙥',
+ \ '\bisansq': '𝙦',
+ \ '\bisansr': '𝙧',
+ \ '\bisanss': '𝙨',
+ \ '\bisanst': '𝙩',
+ \ '\bisansu': '𝙪',
+ \ '\bisansv': '𝙫',
+ \ '\bisansw': '𝙬',
+ \ '\bisansx': '𝙭',
+ \ '\bisansy': '𝙮',
+ \ '\bisansz': '𝙯',
+ \ '\ttA': '𝙰',
+ \ '\ttB': '𝙱',
+ \ '\ttC': '𝙲',
+ \ '\ttD': '𝙳',
+ \ '\ttE': '𝙴',
+ \ '\ttF': '𝙵',
+ \ '\ttG': '𝙶',
+ \ '\ttH': '𝙷',
+ \ '\ttI': '𝙸',
+ \ '\ttJ': '𝙹',
+ \ '\ttK': '𝙺',
+ \ '\ttL': '𝙻',
+ \ '\ttM': '𝙼',
+ \ '\ttN': '𝙽',
+ \ '\ttO': '𝙾',
+ \ '\ttP': '𝙿',
+ \ '\ttQ': '𝚀',
+ \ '\ttR': '𝚁',
+ \ '\ttS': '𝚂',
+ \ '\ttT': '𝚃',
+ \ '\ttU': '𝚄',
+ \ '\ttV': '𝚅',
+ \ '\ttW': '𝚆',
+ \ '\ttX': '𝚇',
+ \ '\ttY': '𝚈',
+ \ '\ttZ': '𝚉',
+ \ '\tta': '𝚊',
+ \ '\ttb': '𝚋',
+ \ '\ttc': '𝚌',
+ \ '\ttd': '𝚍',
+ \ '\tte': '𝚎',
+ \ '\ttf': '𝚏',
+ \ '\ttg': '𝚐',
+ \ '\tth': '𝚑',
+ \ '\tti': '𝚒',
+ \ '\ttj': '𝚓',
+ \ '\ttk': '𝚔',
+ \ '\ttl': '𝚕',
+ \ '\ttm': '𝚖',
+ \ '\ttn': '𝚗',
+ \ '\tto': '𝚘',
+ \ '\ttp': '𝚙',
+ \ '\ttq': '𝚚',
+ \ '\ttr': '𝚛',
+ \ '\tts': '𝚜',
+ \ '\ttt': '𝚝',
+ \ '\ttu': '𝚞',
+ \ '\ttv': '𝚟',
+ \ '\ttw': '𝚠',
+ \ '\ttx': '𝚡',
+ \ '\tty': '𝚢',
+ \ '\ttz': '𝚣',
+ \ '\itimath': '𝚤',
+ \ '\itjmath': '𝚥',
+ \ '\bfAlpha': '𝚨',
+ \ '\bfBeta': '𝚩',
+ \ '\bfGamma': '𝚪',
+ \ '\bfDelta': '𝚫',
+ \ '\bfEpsilon': '𝚬',
+ \ '\bfZeta': '𝚭',
+ \ '\bfEta': '𝚮',
+ \ '\bfTheta': '𝚯',
+ \ '\bfIota': '𝚰',
+ \ '\bfKappa': '𝚱',
+ \ '\bfLambda': '𝚲',
+ \ '\bfMu': '𝚳',
+ \ '\bfNu': '𝚴',
+ \ '\bfXi': '𝚵',
+ \ '\bfOmicron': '𝚶',
+ \ '\bfPi': '𝚷',
+ \ '\bfRho': '𝚸',
+ \ '\bfvarTheta': '𝚹',
+ \ '\bfSigma': '𝚺',
+ \ '\bfTau': '𝚻',
+ \ '\bfUpsilon': '𝚼',
+ \ '\bfPhi': '𝚽',
+ \ '\bfChi': '𝚾',
+ \ '\bfPsi': '𝚿',
+ \ '\bfOmega': '𝛀',
+ \ '\bfnabla': '𝛁',
+ \ '\bfalpha': '𝛂',
+ \ '\bfbeta': '𝛃',
+ \ '\bfgamma': '𝛄',
+ \ '\bfdelta': '𝛅',
+ \ '\bfepsilon': '𝛆',
+ \ '\bfzeta': '𝛇',
+ \ '\bfeta': '𝛈',
+ \ '\bftheta': '𝛉',
+ \ '\bfiota': '𝛊',
+ \ '\bfkappa': '𝛋',
+ \ '\bflambda': '𝛌',
+ \ '\bfmu': '𝛍',
+ \ '\bfnu': '𝛎',
+ \ '\bfxi': '𝛏',
+ \ '\bfomicron': '𝛐',
+ \ '\bfpi': '𝛑',
+ \ '\bfrho': '𝛒',
+ \ '\bfvarsigma': '𝛓',
+ \ '\bfsigma': '𝛔',
+ \ '\bftau': '𝛕',
+ \ '\bfupsilon': '𝛖',
+ \ '\bfvarphi': '𝛗',
+ \ '\bfchi': '𝛘',
+ \ '\bfpsi': '𝛙',
+ \ '\bfomega': '𝛚',
+ \ '\bfpartial': '𝛛',
+ \ '\bfvarepsilon': '𝛜',
+ \ '\bfvartheta': '𝛝',
+ \ '\bfvarkappa': '𝛞',
+ \ '\bfphi': '𝛟',
+ \ '\bfvarrho': '𝛠',
+ \ '\bfvarpi': '𝛡',
+ \ '\itAlpha': '𝛢',
+ \ '\itBeta': '𝛣',
+ \ '\itGamma': '𝛤',
+ \ '\itDelta': '𝛥',
+ \ '\itEpsilon': '𝛦',
+ \ '\itZeta': '𝛧',
+ \ '\itEta': '𝛨',
+ \ '\itTheta': '𝛩',
+ \ '\itIota': '𝛪',
+ \ '\itKappa': '𝛫',
+ \ '\itLambda': '𝛬',
+ \ '\itMu': '𝛭',
+ \ '\itNu': '𝛮',
+ \ '\itXi': '𝛯',
+ \ '\itOmicron': '𝛰',
+ \ '\itPi': '𝛱',
+ \ '\itRho': '𝛲',
+ \ '\itvarTheta': '𝛳',
+ \ '\itSigma': '𝛴',
+ \ '\itTau': '𝛵',
+ \ '\itUpsilon': '𝛶',
+ \ '\itPhi': '𝛷',
+ \ '\itChi': '𝛸',
+ \ '\itPsi': '𝛹',
+ \ '\itOmega': '𝛺',
+ \ '\itnabla': '𝛻',
+ \ '\italpha': '𝛼',
+ \ '\itbeta': '𝛽',
+ \ '\itgamma': '𝛾',
+ \ '\itdelta': '𝛿',
+ \ '\itepsilon': '𝜀',
+ \ '\itzeta': '𝜁',
+ \ '\iteta': '𝜂',
+ \ '\ittheta': '𝜃',
+ \ '\itiota': '𝜄',
+ \ '\itkappa': '𝜅',
+ \ '\itlambda': '𝜆',
+ \ '\itmu': '𝜇',
+ \ '\itnu': '𝜈',
+ \ '\itxi': '𝜉',
+ \ '\itomicron': '𝜊',
+ \ '\itpi': '𝜋',
+ \ '\itrho': '𝜌',
+ \ '\itvarsigma': '𝜍',
+ \ '\itsigma': '𝜎',
+ \ '\ittau': '𝜏',
+ \ '\itupsilon': '𝜐',
+ \ '\itphi': '𝜑',
+ \ '\itchi': '𝜒',
+ \ '\itpsi': '𝜓',
+ \ '\itomega': '𝜔',
+ \ '\itpartial': '𝜕',
+ \ '\itvarepsilon': '𝜖',
+ \ '\itvartheta': '𝜗',
+ \ '\itvarkappa': '𝜘',
+ \ '\itvarphi': '𝜙',
+ \ '\itvarrho': '𝜚',
+ \ '\itvarpi': '𝜛',
+ \ '\biAlpha': '𝜜',
+ \ '\biBeta': '𝜝',
+ \ '\biGamma': '𝜞',
+ \ '\biDelta': '𝜟',
+ \ '\biEpsilon': '𝜠',
+ \ '\biZeta': '𝜡',
+ \ '\biEta': '𝜢',
+ \ '\biTheta': '𝜣',
+ \ '\biIota': '𝜤',
+ \ '\biKappa': '𝜥',
+ \ '\biLambda': '𝜦',
+ \ '\biMu': '𝜧',
+ \ '\biNu': '𝜨',
+ \ '\biXi': '𝜩',
+ \ '\biOmicron': '𝜪',
+ \ '\biPi': '𝜫',
+ \ '\biRho': '𝜬',
+ \ '\bivarTheta': '𝜭',
+ \ '\biSigma': '𝜮',
+ \ '\biTau': '𝜯',
+ \ '\biUpsilon': '𝜰',
+ \ '\biPhi': '𝜱',
+ \ '\biChi': '𝜲',
+ \ '\biPsi': '𝜳',
+ \ '\biOmega': '𝜴',
+ \ '\binabla': '𝜵',
+ \ '\bialpha': '𝜶',
+ \ '\bibeta': '𝜷',
+ \ '\bigamma': '𝜸',
+ \ '\bidelta': '𝜹',
+ \ '\biepsilon': '𝜺',
+ \ '\bizeta': '𝜻',
+ \ '\bieta': '𝜼',
+ \ '\bitheta': '𝜽',
+ \ '\biiota': '𝜾',
+ \ '\bikappa': '𝜿',
+ \ '\bilambda': '𝝀',
+ \ '\bimu': '𝝁',
+ \ '\binu': '𝝂',
+ \ '\bixi': '𝝃',
+ \ '\biomicron': '𝝄',
+ \ '\bipi': '𝝅',
+ \ '\birho': '𝝆',
+ \ '\bivarsigma': '𝝇',
+ \ '\bisigma': '𝝈',
+ \ '\bitau': '𝝉',
+ \ '\biupsilon': '𝝊',
+ \ '\biphi': '𝝋',
+ \ '\bichi': '𝝌',
+ \ '\bipsi': '𝝍',
+ \ '\biomega': '𝝎',
+ \ '\bipartial': '𝝏',
+ \ '\bivarepsilon': '𝝐',
+ \ '\bivartheta': '𝝑',
+ \ '\bivarkappa': '𝝒',
+ \ '\bivarphi': '𝝓',
+ \ '\bivarrho': '𝝔',
+ \ '\bivarpi': '𝝕',
+ \ '\bsansAlpha': '𝝖',
+ \ '\bsansBeta': '𝝗',
+ \ '\bsansGamma': '𝝘',
+ \ '\bsansDelta': '𝝙',
+ \ '\bsansEpsilon': '𝝚',
+ \ '\bsansZeta': '𝝛',
+ \ '\bsansEta': '𝝜',
+ \ '\bsansTheta': '𝝝',
+ \ '\bsansIota': '𝝞',
+ \ '\bsansKappa': '𝝟',
+ \ '\bsansLambda': '𝝠',
+ \ '\bsansMu': '𝝡',
+ \ '\bsansNu': '𝝢',
+ \ '\bsansXi': '𝝣',
+ \ '\bsansOmicron': '𝝤',
+ \ '\bsansPi': '𝝥',
+ \ '\bsansRho': '𝝦',
+ \ '\bsansvarTheta': '𝝧',
+ \ '\bsansSigma': '𝝨',
+ \ '\bsansTau': '𝝩',
+ \ '\bsansUpsilon': '𝝪',
+ \ '\bsansPhi': '𝝫',
+ \ '\bsansChi': '𝝬',
+ \ '\bsansPsi': '𝝭',
+ \ '\bsansOmega': '𝝮',
+ \ '\bsansnabla': '𝝯',
+ \ '\bsansalpha': '𝝰',
+ \ '\bsansbeta': '𝝱',
+ \ '\bsansgamma': '𝝲',
+ \ '\bsansdelta': '𝝳',
+ \ '\bsansepsilon': '𝝴',
+ \ '\bsanszeta': '𝝵',
+ \ '\bsanseta': '𝝶',
+ \ '\bsanstheta': '𝝷',
+ \ '\bsansiota': '𝝸',
+ \ '\bsanskappa': '𝝹',
+ \ '\bsanslambda': '𝝺',
+ \ '\bsansmu': '𝝻',
+ \ '\bsansnu': '𝝼',
+ \ '\bsansxi': '𝝽',
+ \ '\bsansomicron': '𝝾',
+ \ '\bsanspi': '𝝿',
+ \ '\bsansrho': '𝞀',
+ \ '\bsansvarsigma': '𝞁',
+ \ '\bsanssigma': '𝞂',
+ \ '\bsanstau': '𝞃',
+ \ '\bsansupsilon': '𝞄',
+ \ '\bsansphi': '𝞅',
+ \ '\bsanschi': '𝞆',
+ \ '\bsanspsi': '𝞇',
+ \ '\bsansomega': '𝞈',
+ \ '\bsanspartial': '𝞉',
+ \ '\bsansvarepsilon': '𝞊',
+ \ '\bsansvartheta': '𝞋',
+ \ '\bsansvarkappa': '𝞌',
+ \ '\bsansvarphi': '𝞍',
+ \ '\bsansvarrho': '𝞎',
+ \ '\bsansvarpi': '𝞏',
+ \ '\bisansAlpha': '𝞐',
+ \ '\bisansBeta': '𝞑',
+ \ '\bisansGamma': '𝞒',
+ \ '\bisansDelta': '𝞓',
+ \ '\bisansEpsilon': '𝞔',
+ \ '\bisansZeta': '𝞕',
+ \ '\bisansEta': '𝞖',
+ \ '\bisansTheta': '𝞗',
+ \ '\bisansIota': '𝞘',
+ \ '\bisansKappa': '𝞙',
+ \ '\bisansLambda': '𝞚',
+ \ '\bisansMu': '𝞛',
+ \ '\bisansNu': '𝞜',
+ \ '\bisansXi': '𝞝',
+ \ '\bisansOmicron': '𝞞',
+ \ '\bisansPi': '𝞟',
+ \ '\bisansRho': '𝞠',
+ \ '\bisansvarTheta': '𝞡',
+ \ '\bisansSigma': '𝞢',
+ \ '\bisansTau': '𝞣',
+ \ '\bisansUpsilon': '𝞤',
+ \ '\bisansPhi': '𝞥',
+ \ '\bisansChi': '𝞦',
+ \ '\bisansPsi': '𝞧',
+ \ '\bisansOmega': '𝞨',
+ \ '\bisansnabla': '𝞩',
+ \ '\bisansalpha': '𝞪',
+ \ '\bisansbeta': '𝞫',
+ \ '\bisansgamma': '𝞬',
+ \ '\bisansdelta': '𝞭',
+ \ '\bisansepsilon': '𝞮',
+ \ '\bisanszeta': '𝞯',
+ \ '\bisanseta': '𝞰',
+ \ '\bisanstheta': '𝞱',
+ \ '\bisansiota': '𝞲',
+ \ '\bisanskappa': '𝞳',
+ \ '\bisanslambda': '𝞴',
+ \ '\bisansmu': '𝞵',
+ \ '\bisansnu': '𝞶',
+ \ '\bisansxi': '𝞷',
+ \ '\bisansomicron': '𝞸',
+ \ '\bisanspi': '𝞹',
+ \ '\bisansrho': '𝞺',
+ \ '\bisansvarsigma': '𝞻',
+ \ '\bisanssigma': '𝞼',
+ \ '\bisanstau': '𝞽',
+ \ '\bisansupsilon': '𝞾',
+ \ '\bisansphi': '𝞿',
+ \ '\bisanschi': '𝟀',
+ \ '\bisanspsi': '𝟁',
+ \ '\bisansomega': '𝟂',
+ \ '\bisanspartial': '𝟃',
+ \ '\bisansvarepsilon': '𝟄',
+ \ '\bisansvartheta': '𝟅',
+ \ '\bisansvarkappa': '𝟆',
+ \ '\bisansvarphi': '𝟇',
+ \ '\bisansvarrho': '𝟈',
+ \ '\bisansvarpi': '𝟉',
+ \ '\bfDigamma': '𝟊',
+ \ '\bfdigamma': '𝟋',
+ \ '\bfzero': '𝟎',
+ \ '\bfone': '𝟏',
+ \ '\bftwo': '𝟐',
+ \ '\bfthree': '𝟑',
+ \ '\bffour': '𝟒',
+ \ '\bffive': '𝟓',
+ \ '\bfsix': '𝟔',
+ \ '\bfseven': '𝟕',
+ \ '\bfeight': '𝟖',
+ \ '\bfnine': '𝟗',
+ \ '\bbzero': '𝟘',
+ \ '\bbone': '𝟙',
+ \ '\bbtwo': '𝟚',
+ \ '\bbthree': '𝟛',
+ \ '\bbfour': '𝟜',
+ \ '\bbfive': '𝟝',
+ \ '\bbsix': '𝟞',
+ \ '\bbseven': '𝟟',
+ \ '\bbeight': '𝟠',
+ \ '\bbnine': '𝟡',
+ \ '\sanszero': '𝟢',
+ \ '\sansone': '𝟣',
+ \ '\sanstwo': '𝟤',
+ \ '\sansthree': '𝟥',
+ \ '\sansfour': '𝟦',
+ \ '\sansfive': '𝟧',
+ \ '\sanssix': '𝟨',
+ \ '\sansseven': '𝟩',
+ \ '\sanseight': '𝟪',
+ \ '\sansnine': '𝟫',
+ \ '\bsanszero': '𝟬',
+ \ '\bsansone': '𝟭',
+ \ '\bsanstwo': '𝟮',
+ \ '\bsansthree': '𝟯',
+ \ '\bsansfour': '𝟰',
+ \ '\bsansfive': '𝟱',
+ \ '\bsanssix': '𝟲',
+ \ '\bsansseven': '𝟳',
+ \ '\bsanseight': '𝟴',
+ \ '\bsansnine': '𝟵',
+ \ '\ttzero': '𝟶',
+ \ '\ttone': '𝟷',
+ \ '\tttwo': '𝟸',
+ \ '\ttthree': '𝟹',
+ \ '\ttfour': '𝟺',
+ \ '\ttfive': '𝟻',
+ \ '\ttsix': '𝟼',
+ \ '\ttseven': '𝟽',
+ \ '\tteight': '𝟾',
+ \ '\ttnine': '𝟿',
\ '\:mahjong:': '🀄',
\ '\:black_joker:': '🃏',
\ '\:a:': '🅰',
diff --git a/autoload/rubycomplete.vim b/autoload/rubycomplete.vim
index 1184c427..88dfaadd 100644
--- a/autoload/rubycomplete.vim
+++ b/autoload/rubycomplete.vim
@@ -105,7 +105,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
endif
let curpos = getpos(".")
- let [enum,ecol] = searchpairpos( crex, '', '\(end\|}\)', 'wr' )
+ let [enum,ecol] = searchpairpos( crex, '', '\(end\|}\)', 'W' )
call cursor(lastpos[1], lastpos[2])
if lnum > enum
@@ -255,15 +255,27 @@ class VimRubyCompletion
# {{{ buffer analysis magic
def load_requires
+
+ custom_paths = VIM::evaluate("get(g:, 'rubycomplete_load_paths', [])")
+
+ if !custom_paths.empty?
+ $LOAD_PATH.concat(custom_paths).uniq!
+ end
+
buf = VIM::Buffer.current
enum = buf.line_number
nums = Range.new( 1, enum )
nums.each do |x|
+
ln = buf[x]
begin
- eval( "require %s" % $1 ) if /.*require\s*(["'].*?["'])/.match( ln )
- rescue Exception
- #ignore?
+ if /.*require_relative\s*(.*)$/.match( ln )
+ eval( "require %s" % File.expand_path($1) )
+ elsif /.*require\s*(["'].*?["'])/.match( ln )
+ eval( "require %s" % $1 )
+ end
+ rescue Exception => e
+ dprint e.inspect
end
end
end
@@ -346,8 +358,13 @@ class VimRubyCompletion
if x != cur_line
next if x == 0
ln = buf[x]
- if /^\s*(module|class|def|include)\s+/.match(ln)
- clscnt += 1 if $1 == "class"
+ is_const = false
+ if /^\s*(module|class|def|include)\s+/.match(ln) || is_const = /^\s*?[A-Z]([A-z]|[1-9])*\s*?[|]{0,2}=\s*?.+\s*?/.match(ln)
+ clscnt += 1 if /class|module/.match($1)
+ # We must make sure to load each constant only once to avoid errors
+ if is_const
+ ln.gsub!(/\s*?[|]{0,2}=\s*?/, '||=')
+ end
#dprint "\$1$1
classdef += "%s\n" % ln
classdef += "end\n" if /def\s+/.match(ln)
@@ -425,7 +442,6 @@ class VimRubyCompletion
return get_buffer_entity_list( "class" )
end
-
def load_rails
allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
return if allow_rails.to_i.zero?
@@ -531,7 +547,6 @@ class VimRubyCompletion
ret += ActiveRecord::ConnectionAdapters::SchemaStatements.methods
end
-
return ret
end
@@ -616,7 +631,6 @@ class VimRubyCompletion
want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')")
load_gems unless want_gems.to_i.zero?
-
input = VIM::Buffer.current.line
cpos = VIM::Window.current.cursor[1] - 1
@@ -670,6 +684,7 @@ class VimRubyCompletion
message = Regexp.quote($4)
dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ]
load_buffer_class( receiver )
+ load_buffer_module( receiver )
begin
classes = eval("#{receiver}.constants")
#methods = eval("#{receiver}.methods")
@@ -790,7 +805,6 @@ class VimRubyCompletion
methods += Kernel.public_methods
end
-
include_object = VIM::evaluate("exists('g:rubycomplete_include_object') && g:rubycomplete_include_object")
methods = clean_sel( methods, message )
methods = (methods-Object.instance_methods) if include_object == "0"
@@ -833,7 +847,6 @@ let s:rubycomplete_rails_loaded = 0
call s:DefRuby()
"}}} ruby-side code
-
" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl:
endif
diff --git a/autoload/rust.vim b/autoload/rust.vim
index 7e766da1..77c38b7c 100644
--- a/autoload/rust.vim
+++ b/autoload/rust.vim
@@ -86,7 +86,7 @@ function! s:Run(dict, rustc_args, args)
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
let output = s:system(pwd, shellescape(rustc) . " " . join(map(rustc_args, 'shellescape(v:val)')))
- if output != ''
+ if output !=# ''
echohl WarningMsg
echo output
echohl None
@@ -153,7 +153,7 @@ function! s:Expand(dict, pretty, args)
endfunction
function! rust#CompleteExpand(lead, line, pos)
- if a:line[: a:pos-1] =~ '^RustExpand!\s*\S*$'
+ if a:line[: a:pos-1] =~# '^RustExpand!\s*\S*$'
" first argument and it has a !
let list = ["normal", "expanded", "typed", "expanded,identified", "flowgraph=", "everybody_loops"]
if !empty(a:lead)
@@ -182,7 +182,7 @@ function! s:Emit(dict, type, args)
let args = [relpath, '--emit', a:type, '-o', output_path] + a:args
let pwd = a:dict.istemp ? a:dict.tmpdir : ''
let output = s:system(pwd, shellescape(rustc) . " " . join(map(args, 'shellescape(v:val)')))
- if output != ''
+ if output !=# ''
echohl WarningMsg
echo output
echohl None
@@ -192,10 +192,10 @@ function! s:Emit(dict, type, args)
exe 'silent keepalt read' fnameescape(output_path)
1
d
- if a:type == "llvm-ir"
+ if a:type ==# "llvm-ir"
setl filetype=llvm
let extension = 'll'
- elseif a:type == "asm"
+ elseif a:type ==# "asm"
setl filetype=asm
let extension = 's'
endif
@@ -261,8 +261,8 @@ function! s:WithPath(func, ...)
let dict.tmpdir_relpath = filename
let dict.path = dict.tmpdir.'/'.filename
- let saved.mod = &mod
- set nomod
+ let saved.mod = &modified
+ set nomodified
silent exe 'keepalt write! ' . fnameescape(dict.path)
if pathisempty
@@ -343,7 +343,7 @@ function! s:ShellTokenize(text)
endif
let l:state = 3
elseif l:state == 5 " single-quoted
- if l:c == "'"
+ if l:c ==# "'"
let l:state = 1
else
let l:current .= l:c
@@ -361,7 +361,7 @@ function! s:RmDir(path)
if empty(a:path)
echoerr 'Attempted to delete empty path'
return 0
- elseif a:path == '/' || a:path == $HOME
+ elseif a:path ==# '/' || a:path ==# $HOME
echoerr 'Attempted to delete protected path: ' . a:path
return 0
endif
@@ -414,22 +414,83 @@ function! rust#Play(count, line1, line2, ...) abort
call setreg('"', save_regcont, save_regtype)
endif
- let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
+ let url = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
- if strlen(body) > 5000
- echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
+ if strlen(url) > 5000
+ echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(url).')' | echohl None
return
endif
- let payload = "format=simple&url=".webapi#http#encodeURI(body)
+ let payload = "format=simple&url=".webapi#http#encodeURI(url)
let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
- let url = res.content
+ if res.status[0] ==# '2'
+ let url = res.content
+ endif
+ let footer = ''
if exists('g:rust_clip_command')
call system(g:rust_clip_command, url)
+ if !v:shell_error
+ let footer = ' (copied to clipboard)'
+ endif
endif
+ redraw | echomsg 'Done: '.url.footer
+endfunction
- redraw | echomsg 'Done: '.url
+" Run a test under the cursor or all tests {{{1
+
+" Finds a test function name under the cursor. Returns empty string when a
+" test function is not found.
+function! s:SearchTestFunctionNameUnderCursor() abort
+ let cursor_line = line('.')
+
+ " Find #[test] attribute
+ if search('#\[test]', 'bcW') is 0
+ return ''
+ endif
+
+ " Move to an opening brace of the test function
+ let test_func_line = search('^\s*fn\s\+\h\w*\s*(.\+{$', 'eW')
+ if test_func_line is 0
+ return ''
+ endif
+
+ " Search the end of test function (closing brace) to ensure that the
+ " cursor position is within function definition
+ normal! %
+ if line('.') < cursor_line
+ return ''
+ endif
+
+ return matchstr(getline(test_func_line), '^\s*fn\s\+\zs\h\w*')
+endfunction
+
+function! rust#Test(all, options) abort
+ let pwd = expand('%:p:h')
+ if findfile('Cargo.toml', pwd . ';') ==# ''
+ return rust#Run(1, '--test ' . a:options)
+ endif
+
+ let pwd = shellescape(pwd)
+
+ if a:all
+ execute '!cd ' . pwd . ' && cargo test ' . a:options
+ return
+ endif
+
+ let saved = getpos('.')
+ try
+ let func_name = s:SearchTestFunctionNameUnderCursor()
+ if func_name ==# ''
+ echohl ErrorMsg
+ echo 'No test function was found under the cursor. Please add ! to command if you want to run all tests'
+ echohl None
+ return
+ endif
+ execute '!cd ' . pwd . ' && cargo test ' . func_name . ' ' . a:options
+ finally
+ call setpos('.', saved)
+ endtry
endfunction
" }}}1
diff --git a/autoload/rust/debugging.vim b/autoload/rust/debugging.vim
index 352556d7..ff88e00c 100644
--- a/autoload/rust/debugging.vim
+++ b/autoload/rust/debugging.vim
@@ -18,6 +18,7 @@ let s:global_variable_list = [
\ 'rust_last_rustc_args',
\ 'rust_original_delimitMate_excluded_regions',
\ 'rust_playpen_url',
+ \ 'rust_prev_delimitMate_quotes',
\ 'rust_recent_nearest_cargo_tol',
\ 'rust_recent_root_cargo_toml',
\ 'rust_recommended_style',
diff --git a/autoload/rust/delimitmate.vim b/autoload/rust/delimitmate.vim
new file mode 100644
index 00000000..e99cc87d
--- /dev/null
+++ b/autoload/rust/delimitmate.vim
@@ -0,0 +1,48 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
+
+let s:delimitMate_extra_excluded_regions = ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
+
+" For this buffer, when delimitMate issues the `User delimitMate_map`
+" event in the autocommand system, add the above-defined extra excluded
+" regions to delimitMate's state, if they have not already been added.
+function! rust#delimitmate#onMap() abort
+ if &filetype !=# 'rust'
+ return
+ endif
+
+ if get(b:, "delimitMate_quotes")
+ let b:rust_prev_delimitMate_quotes = b:delimitMate_quotes
+ endif
+ let b:delimitMate_quotes = "\" `"
+
+ if match(delimitMate#Get("excluded_regions"),
+ \ s:delimitMate_extra_excluded_regions) == -1
+ call delimitMate#Set("excluded_regions",
+ \delimitMate#Get("excluded_regions").s:delimitMate_extra_excluded_regions)
+ endif
+endfunction
+
+" For this buffer, when delimitMate issues the `User delimitMate_unmap`
+" event in the autocommand system, delete the above-defined extra excluded
+" regions from delimitMate's state (the deletion being idempotent and
+" having no effect if the extra excluded regions are not present in the
+" targeted part of delimitMate's state).
+function! rust#delimitmate#onUnmap() abort
+ if &filetype !=# 'rust'
+ return
+ endif
+
+ if get(b:, "rust_prev_delimitMate_quotes")
+ let b:delimitMate_quotes = b:rust_prev_delimitMate_quotes
+ endif
+
+ call delimitMate#Set("excluded_regions", substitute(
+ \ delimitMate#Get("excluded_regions"),
+ \ '\C\V' . s:delimitMate_extra_excluded_regions,
+ \ '', 'g'))
+endfunction
+
+" vim: set et sw=4 sts=4 ts=8:
+
+
+endif
diff --git a/autoload/rustfmt.vim b/autoload/rustfmt.vim
index c0335173..916736c0 100644
--- a/autoload/rustfmt.vim
+++ b/autoload/rustfmt.vim
@@ -63,6 +63,20 @@ function! s:RustfmtWriteMode()
endif
endfunction
+function! s:RustfmtConfig()
+ let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
+ if l:rustfmt_toml !=# ''
+ return '--config-path '.l:rustfmt_toml
+ endif
+
+ let l:_rustfmt_toml = findfile('.rustfmt.toml', expand('%:p:h') . ';')
+ if l:_rustfmt_toml !=# ''
+ return '--config-path '.l:_rustfmt_toml
+ endif
+
+ return ''
+endfunction
+
function! s:RustfmtCommandRange(filename, line1, line2)
if g:rustfmt_file_lines == 0
echo "--file-lines is not supported in the installed `rustfmt` executable"
@@ -71,6 +85,7 @@ function! s:RustfmtCommandRange(filename, line1, line2)
let l:arg = {"file": shellescape(a:filename), "range": [a:line1, a:line2]}
let l:write_mode = s:RustfmtWriteMode()
+ let l:rustfmt_config = s:RustfmtConfig()
" FIXME: When --file-lines gets to be stable, enhance this version range checking
" accordingly.
@@ -78,34 +93,73 @@ function! s:RustfmtCommandRange(filename, line1, line2)
\ (s:rustfmt_unstable_features && (s:rustfmt_version < '1.'))
\ ? '--unstable-features' : ''
- let l:cmd = printf("%s %s %s %s --file-lines '[%s]' %s", g:rustfmt_command,
- \ l:write_mode, g:rustfmt_options,
- \ l:unstable_features, json_encode(l:arg), shellescape(a:filename))
+ let l:cmd = printf("%s %s %s %s %s --file-lines '[%s]' %s", g:rustfmt_command,
+ \ l:write_mode, g:rustfmt_options,
+ \ l:unstable_features, l:rustfmt_config,
+ \ json_encode(l:arg), shellescape(a:filename))
return l:cmd
endfunction
-function! s:RustfmtCommand(filename)
- let l:write_mode = s:RustfmtWriteMode()
- return g:rustfmt_command . " ". l:write_mode . " " . g:rustfmt_options . " " . shellescape(a:filename)
+function! s:RustfmtCommand()
+ if g:rustfmt_emit_files
+ let l:write_mode = "--emit=stdout"
+ else
+ let l:write_mode = "--write-mode=display"
+ endif
+ " rustfmt will pick on the right config on its own due to the
+ " current directory change.
+ return g:rustfmt_command . " ". l:write_mode . " " . g:rustfmt_options
+endfunction
+
+function! s:DeleteLines(start, end) abort
+ silent! execute a:start . ',' . a:end . 'delete _'
endfunction
function! s:RunRustfmt(command, tmpname, fail_silently)
mkview!
- if exists("*systemlist")
- let out = systemlist(a:command)
+ let l:stderr_tmpname = tempname()
+ let l:command = a:command . ' 2> ' . l:stderr_tmpname
+
+ if a:tmpname ==# ''
+ " Rustfmt in stdin/stdout mode
+
+ " chdir to the directory of the file
+ let l:has_lcd = haslocaldir()
+ let l:prev_cd = getcwd()
+ execute 'lchdir! '.expand('%:h')
+
+ let l:buffer = getline(1, '$')
+ if exists("*systemlist")
+ silent let out = systemlist(l:command, l:buffer)
+ else
+ silent let out = split(system(l:command, l:buffer), '\r\?\n')
+ endif
else
- let out = split(system(a:command), '\r\?\n')
+ if exists("*systemlist")
+ silent let out = systemlist(l:command)
+ else
+ silent let out = split(system(l:command), '\r\?\n')
+ endif
endif
- if v:shell_error == 0 || v:shell_error == 3
+ let l:stderr = readfile(l:stderr_tmpname)
+
+ call delete(l:stderr_tmpname)
+
+ if v:shell_error == 0
" remove undo point caused via BufWritePre
try | silent undojoin | catch | endtry
- " take the tmpfile's content, this is better than rename
- " because it preserves file modes.
- let l:content = readfile(a:tmpname)
- 1,$d _
+ if a:tmpname ==# ''
+ let l:content = l:out
+ else
+ " take the tmpfile's content, this is better than rename
+ " because it preserves file modes.
+ let l:content = readfile(a:tmpname)
+ endif
+
+ call s:DeleteLines(len(l:content), line('$'))
call setline(1, l:content)
" only clear location list if it was previously filled to prevent
@@ -117,61 +171,69 @@ function! s:RunRustfmt(command, tmpname, fail_silently)
endif
elseif g:rustfmt_fail_silently == 0 && a:fail_silently == 0
" otherwise get the errors and put them in the location list
- let errors = []
+ let l:errors = []
- let prev_line = ""
- for line in out
+ let l:prev_line = ""
+ for l:line in l:stderr
" error: expected one of `;` or `as`, found `extern`
" --> src/main.rs:2:1
- let tokens = matchlist(line, '^\s-->\s\(.\{-}\):\(\d\+\):\(\d\+\)$')
+ let tokens = matchlist(l:line, '^\s\+-->\s\(.\{-}\):\(\d\+\):\(\d\+\)$')
if !empty(tokens)
- call add(errors, {"filename": @%,
+ call add(l:errors, {"filename": @%,
\"lnum": tokens[2],
\"col": tokens[3],
- \"text": prev_line})
+ \"text": l:prev_line})
endif
- let prev_line = line
+ let l:prev_line = l:line
endfor
- if empty(errors)
- % | " Couldn't detect rustfmt error format, output errors
- endif
-
- if !empty(errors)
- call setloclist(0, errors, 'r')
+ if !empty(l:errors)
+ call setloclist(0, l:errors, 'r')
echohl Error | echomsg "rustfmt returned error" | echohl None
+ else
+ echo "rust.vim: was not able to parse rustfmt messages. Here is the raw output:"
+ echo "\n"
+ for l:line in l:stderr
+ echo l:line
+ endfor
endif
let s:got_fmt_error = 1
lwindow
endif
- call delete(a:tmpname)
+ " Restore the current directory if needed
+ if a:tmpname ==# ''
+ if l:has_lcd
+ execute 'lchdir! '.l:prev_cd
+ else
+ execute 'chdir! '.l:prev_cd
+ endif
+ endif
silent! loadview
endfunction
-function! s:rustfmtSaveToTmp()
+function! rustfmt#FormatRange(line1, line2)
let l:tmpname = tempname()
call writefile(getline(1, '$'), l:tmpname)
- return l:tmpname
-endfunction
-
-function! rustfmt#FormatRange(line1, line2)
- let l:tmpname = s:rustfmtSaveToTmp()
let command = s:RustfmtCommandRange(l:tmpname, a:line1, a:line2)
call s:RunRustfmt(command, l:tmpname, 0)
+ call delete(l:tmpname)
endfunction
function! rustfmt#Format()
- let l:tmpname = s:rustfmtSaveToTmp()
- let command = s:RustfmtCommand(l:tmpname)
- call s:RunRustfmt(command, l:tmpname, 0)
+ call s:RunRustfmt(s:RustfmtCommand(), '', 0)
+endfunction
+
+function! rustfmt#Cmd()
+ " Mainly for debugging
+ return s:RustfmtCommand()
endfunction
function! rustfmt#PreWrite()
if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0)
- if findfile('rustfmt.toml', '.;') !=# ''
+ if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# ''
let b:rustfmt_autosave = 1
let b:rustfmt_autosave_because_of_config = 1
endif
@@ -181,9 +243,7 @@ function! rustfmt#PreWrite()
return
endif
- let l:tmpname = s:rustfmtSaveToTmp()
- let command = s:RustfmtCommand(l:tmpname)
- call s:RunRustfmt(command, l:tmpname, 1)
+ call s:RunRustfmt(s:RustfmtCommand(), '', 1)
endfunction