From c324a086b2e184f0275c46e97acbf95376683fde Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Fri, 22 Jan 2016 09:12:18 +0100 Subject: [PATCH] Exclude autoload scripts for nim --- README.md | 2 +- autoload/nim.vim | 232 ----------------------------------------------- build | 2 +- ftplugin/nim.vim | 27 ------ 4 files changed, 2 insertions(+), 261 deletions(-) delete mode 100644 autoload/nim.vim delete mode 100644 ftplugin/nim.vim diff --git a/README.md b/README.md index 3f0e3b4..026a1be 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo - [liquid](https://github.com/tpope/vim-liquid) (syntax, indent, ftplugin, ftdetect) - [markdown](https://github.com/tpope/vim-markdown) (syntax, ftplugin, ftdetect) - [nginx](https://github.com/nginx/nginx) (syntax, indent, ftdetect) -- [nim](https://github.com/zah/nim.vim) (syntax, indent, compiler, autoload, ftplugin, ftdetect) +- [nim](https://github.com/zah/nim.vim) (syntax, compiler, indent, ftdetect) - [nix](https://github.com/spwhitt/vim-nix) (syntax, ftplugin, ftdetect) - [objc](https://github.com/b4winckler/vim-objc) (ftplugin, syntax, indent) - [ocaml](https://github.com/jrk/vim-ocaml) (syntax, indent, ftplugin) diff --git a/autoload/nim.vim b/autoload/nim.vim deleted file mode 100644 index 3e99aa4..0000000 --- a/autoload/nim.vim +++ /dev/null @@ -1,232 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1 - -let g:nim_log = [] -let s:plugin_path = escape(expand(':p:h'), ' \') - -if !exists("g:nim_caas_enabled") - let g:nim_caas_enabled = 0 -endif - -if !executable('nim') - echoerr "the Nim compiler must be in your system's PATH" -endif - -exe 'pyfile ' . fnameescape(s:plugin_path) . '/nim_vim.py' - -fun! nim#init() - let cmd = printf("nim --dump.format:json --verbosity:0 dump %s", s:CurrentNimFile()) - let raw_dumpdata = system(cmd) - if !v:shell_error - let dumpdata = eval(substitute(raw_dumpdata, "\n", "", "g")) - - let b:nim_project_root = dumpdata['project_path'] - let b:nim_defined_symbols = dumpdata['defined_symbols'] - let b:nim_caas_enabled = g:nim_caas_enabled || index(dumpdata['defined_symbols'], 'forcecaas') != -1 - - for path in dumpdata['lib_paths'] - if finddir(path) == path - let &l:path = path . "," . &l:path - endif - endfor - else - let b:nim_caas_enabled = 0 - endif -endf - -fun! s:UpdateNimLog() - setlocal buftype=nofile - setlocal bufhidden=hide - setlocal noswapfile - - for entry in g:nim_log - call append(line('$'), split(entry, "\n")) - endfor - - let g:nim_log = [] - - match Search /^nim\ .*/ -endf - -augroup NimVim - au! - au BufEnter log://nim call s:UpdateNimLog() - " au QuitPre * :py nimTerminateAll() - au VimLeavePre * :py nimTerminateAll() -augroup END - -command! NimLog :e log://nim - -command! NimTerminateService - \ :exe printf("py nimTerminateService('%s')", b:nim_project_root) - -command! NimRestartService - \ :exe printf("py nimRestartService('%s')", b:nim_project_root) - -fun! s:CurrentNimFile() - let save_cur = getpos('.') - call cursor(0, 0, 0) - - let PATTERN = "\\v^\\#\\s*included from \\zs.*\\ze" - let l = search(PATTERN, "n") - - if l != 0 - let f = matchstr(getline(l), PATTERN) - let l:to_check = expand('%:h') . "/" . f - else - let l:to_check = expand("%") - endif - - call setpos('.', save_cur) - return l:to_check -endf - -let g:nim_symbol_types = { - \ 'skParam': 'v', - \ 'skVar': 'v', - \ 'skLet': 'v', - \ 'skTemp': 'v', - \ 'skForVar': 'v', - \ 'skConst': 'v', - \ 'skResult': 'v', - \ 'skGenericParam': 't', - \ 'skType': 't', - \ 'skField': 'm', - \ 'skProc': 'f', - \ 'skMethod': 'f', - \ 'skIterator': 'f', - \ 'skConverter': 'f', - \ 'skMacro': 'f', - \ 'skTemplate': 'f', - \ 'skEnumField': 'v', - \ } - -fun! NimExec(op) - let isDirty = getbufvar(bufnr('%'), "&modified") - if isDirty - let tmp = tempname() . bufname("%") . "_dirty.nim" - silent! exe ":w " . tmp - - let cmd = printf("idetools %s --trackDirty:\"%s,%s,%d,%d\" \"%s\"", - \ a:op, tmp, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile()) - else - let cmd = printf("idetools %s --track:\"%s,%d,%d\" \"%s\"", - \ a:op, expand('%:p'), line('.'), col('.')-1, s:CurrentNimFile()) - endif - - if b:nim_caas_enabled - exe printf("py nimExecCmd('%s', '%s', False)", b:nim_project_root, cmd) - let output = l:py_res - else - let output = system("nim " . cmd) - endif - - call add(g:nim_log, "nim " . cmd . "\n" . output) - return output -endf - -fun! NimExecAsync(op, Handler) - let result = NimExec(a:op) - call a:Handler(result) -endf - -fun! NimComplete(findstart, base) - if b:nim_caas_enabled == 0 - return -1 - endif - - if a:findstart - if synIDattr(synIDtrans(synID(line("."),col("."),1)), "name") == 'Comment' - return -1 - endif - return col('.') - else - let result = [] - let sugOut = NimExec("--suggest") - for line in split(sugOut, '\n') - let lineData = split(line, '\t') - if len(lineData) > 0 && lineData[0] == "sug" - let kind = get(g:nim_symbol_types, lineData[1], '') - let c = { 'word': lineData[2], 'kind': kind, 'menu': lineData[3], 'dup': 1 } - call add(result, c) - endif - endfor - return result - endif -endf - -if !exists("g:neocomplcache_omni_patterns") - let g:neocomplcache_omni_patterns = {} -endif - -let g:neocomplcache_omni_patterns['nim'] = '[^. *\t]\.\w*' -let g:nim_completion_callbacks = {} - -fun! NimAsyncCmdComplete(cmd, output) - call add(g:nim_log, a:output) - echom g:nim_completion_callbacks - if has_key(g:nim_completion_callbacks, a:cmd) - let Callback = get(g:nim_completion_callbacks, a:cmd) - call Callback(a:output) - " remove(g:nim_completion_callbacks, a:cmd) - else - echom "ERROR, Unknown Command: " . a:cmd - endif - return 1 -endf - -fun! GotoDefinition_nim_ready(def_output) - if v:shell_error - echo "nim was unable to locate the definition. exit code: " . v:shell_error - " echoerr a:def_output - return 0 - endif - - let rawDef = matchstr(a:def_output, 'def\t\([^\n]*\)') - if rawDef == "" - echo "the current cursor position does not match any definitions" - return 0 - endif - - let defBits = split(rawDef, '\t') - let file = defBits[4] - let line = defBits[5] - exe printf("e +%d %s", line, file) - return 1 -endf - -fun! GotoDefinition_nim() - call NimExecAsync("--def", function("GotoDefinition_nim_ready")) -endf - -fun! FindReferences_nim() - setloclist() -endf - -" Syntastic syntax checking -fun! SyntaxCheckers_nim_nim_GetLocList() - let makeprg = 'nim check --hints:off --listfullpaths ' . s:CurrentNimFile() - let errorformat = &errorformat - - return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) -endf - -function! SyntaxCheckers_nim_nim_IsAvailable() - return executable("nim") -endfunction - -if exists("g:SyntasticRegistry") - call g:SyntasticRegistry.CreateAndRegisterChecker({ - \ 'filetype': 'nim', - \ 'name': 'nim'}) -endif - -if !exists("g:quickrun_config") - let g:quickrun_config = {} -endif - -if !exists("g:quickrun_config.nim") - let g:quickrun_config.nim = { "exec": "nim c --run --verbosity:0 %S" } -endif - - -endif diff --git a/build b/build index 77c3cee..c500b82 100755 --- a/build +++ b/build @@ -137,7 +137,7 @@ PACKS=" liquid:tpope/vim-liquid markdown:tpope/vim-markdown nginx:nginx/nginx::/contrib/vim/ - nim:zah/nim.vim + nim:zah/nim.vim:_BASIC nix:spwhitt/vim-nix objc:b4winckler/vim-objc ocaml:jrk/vim-ocaml diff --git a/ftplugin/nim.vim b/ftplugin/nim.vim deleted file mode 100644 index 5f3e93d..0000000 --- a/ftplugin/nim.vim +++ /dev/null @@ -1,27 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nim') == -1 - -if exists("b:nim_loaded") - finish -endif - -let b:nim_loaded = 1 - -let s:cpo_save = &cpo -set cpo&vim - -call nim#init() - -setlocal formatoptions-=t formatoptions+=croql -setlocal comments=:##,:# -setlocal commentstring=#\ %s -setlocal omnifunc=NimComplete -setlocal suffixesadd=.nim -setlocal expandtab "Make sure that only spaces are used - -compiler nim - -let &cpo = s:cpo_save -unlet s:cpo_save - - -endif