Server IP : 85.214.239.14 / Your IP : 52.15.233.83 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/task/2/root/proc/2/cwd/usr/share/vim/vim90/autoload/ |
Upload File : |
vim9script # Language: ConTeXt typesetting engine # Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> # Former Maintainers: Nikolai Weibull <now@bitwi.se> # Latest Revision: 2022 Sep 19 # Typesetting {{{ import autoload './typeset.vim' export def ConTeXtCmd(path: string): list<string> var cmd = ['mtxrun', '--script', 'context', '--nonstopmode', '--autogenerate'] if !empty(get(g:, 'context_extra_options', '')) cmd += g:context_extra_options endif cmd->add(path) return cmd enddef export def Typeset(bufname: string, env = {}, Cmd = ConTeXtCmd): bool return typeset.TypesetBuffer(bufname, Cmd, env, 'ConTeXt') enddef export def JobStatus() typeset.JobStatus('ConTeXt') enddef export def StopJobs() typeset.StopJobs('ConTeXt') enddef export def Log(bufname: string) execute 'edit' typeset.LogPath(bufname) enddef # }}} # Completion {{{ def BinarySearch(base: string, keywords: list<string>): list<string> const pat = '^' .. base const len = len(keywords) var res = [] var lft = 0 var rgt = len # Find the leftmost index matching base while lft < rgt var i = (lft + rgt) / 2 if keywords[i] < base lft = i + 1 else rgt = i endif endwhile while lft < len && keywords[lft] =~ pat add(res, keywords[lft]) lft += 1 endwhile return res enddef var isMetaPostBlock = false var MP_KEYWORDS: list<string> = [] var CTX_KEYWORDS: list<string> = [] # Complete only MetaPost keywords in MetaPost blocks, and complete only # ConTeXt keywords otherwise. export def Complete(findstart: number, base: string): any if findstart == 1 if len(synstack(line("."), 1)) > 0 && synIDattr(synstack(line("."), 1)[0], "name") ==# 'contextMPGraphic' isMetaPostBlock = true return match(getline('.'), '\S\+\%' .. col('.') .. 'c') endif # Complete only \commands starting with a backslash isMetaPostBlock = false var pos = match(getline('.'), '\\\zs\S\+\%' .. col('.') .. 'c') return (pos == -1) ? -3 : pos endif if isMetaPostBlock if empty(MP_KEYWORDS) MP_KEYWORDS = sort(syntaxcomplete#OmniSyntaxList(['mf\w\+', 'mp\w\+'])) endif return BinarySearch(base, MP_KEYWORDS) endif if empty(CTX_KEYWORDS) CTX_KEYWORDS = sort(syntaxcomplete#OmniSyntaxList([ 'context\w\+', 'texAleph', 'texEtex', 'texLuatex', 'texOmega', 'texPdftex', 'texTex', 'texXeTeX' ])) endif return BinarySearch(base, CTX_KEYWORDS) enddef # }}} # vim: sw=2 fdm=marker