Add jump to def test

- Fix global variable initialization
- Remove broken shell escapes
This commit is contained in:
baabelfish 2016-03-15 02:25:49 +02:00
commit 17b22b6fc3
14 changed files with 97 additions and 40 deletions

View file

@ -12,7 +12,6 @@ let s:NimDebugger = {
function! s:NimDebugger.on_stdout(job, chunk)
for line in a:chunk
echom line
" *** endb| reached edb.nim(4) wat ***
" let matched = matchlist(line, "\\*\\*\\* endb\|\(.*\)$")
let matched = matchlist(line, "")

View file

@ -14,7 +14,7 @@ endfunction
function! features#definition#run()
call suggest#New("def", 0, 0, s:DefinitionImpl)
call suggest#New("def", !g:nvim_nim_enable_async, 0, s:DefinitionImpl)
endfunction

View file

@ -53,13 +53,13 @@ function! features#info#web()
if modules#isGlobalImport(current_word)
call util#open_module_doc(current_word, "")
else
call suggest#New("def", 0, 0, s:New(1))
call suggest#New("def", !g:nvim_nim_enable_async, 0, s:New(1))
endif
endfunction
function! features#info#run()
call suggest#New("def", 0, 0, s:New(0))
call suggest#New("def", !g:nvim_nim_enable_async, 0, s:New(0))
endfunction

View file

@ -250,7 +250,7 @@ function! features#outline#run(isUpdating)
if !a:isUpdating || s:IsOpen()
" if s:BufferModified()
let s:current_buffer = winnr()
call suggest#New("outline", 0, 1, s:OutlineImpl)
call suggest#New("outline", !g:nvim_nim_enable_async, 1, s:OutlineImpl)
" else
" call s:OutlineImpl.run(s:OutlineImpl.cache)
" endif

View file

@ -34,7 +34,7 @@ endfunction
function! features#rename#run(inProject)
let s:findInProject = a:inProject
call suggest#New("use", 0, 1, s:RenameImpl)
call suggest#New("use", !g:nvim_nim_enable_async, 1, s:RenameImpl)
endfunction

View file

@ -46,14 +46,14 @@ endfunction
let s:UsagesDefinitionImpl = {}
function! s:UsagesDefinitionImpl.run(data)
call suggest#NewKnown("use", 0, 1, a:data.file, a:data.line, a:data.col, s:UsagesImpl)
call suggest#NewKnown("use", !g:nvim_nim_enable_async, 1, a:data.file, a:data.line, a:data.col, s:UsagesImpl)
endfunction
function! features#usages#run(findInProject)
cclose
call setqflist([])
let s:findInProject = a:findInProject
call suggest#New("def", 0, 1, s:UsagesDefinitionImpl)
call suggest#New("def", !g:nvim_nim_enable_async, 1, s:UsagesDefinitionImpl)
endfunction

View file

@ -111,8 +111,8 @@ function highlighter#New()
let result.file = expand("%:p")
let result.tempfile = util#WriteMemfile()
let result.job = jobstart([g:nvim_nim_exec_nimsuggest, '--v2', '--stdin', result.file], result)
call jobsend(result.job, "highlight " . result.file . ";" . result.tempfile . ":1:1\nquit\n")
let cmd = "highlight " . result.file . ";" . result.tempfile . ":1:1\nquit\n"
call jobsend(result.job, cmd)
if !exists("b:highlights")
let b:highlights = []

View file

@ -23,13 +23,14 @@ function! omni#item_module(name, file, type)
\ }
endfunction
" TODO: Refactor combine (1)
function! omni#nimsuggest(file, l, c)
let completions = []
let tempfile = util#WriteMemfile()
let query = "sug " . a:file . ";" . tempfile . ":" . a:l . ":" . a:c
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " --threads:on --colors:off --compileOnly --experimental --v2 --stdin " . a:file
let fullcmd = 'echo -e ' . shellescape(query, 1) . '|' . jobcmdstr
let fullcmd = 'echo -e "' . query . '"|' . jobcmdstr
let completions_raw = util#FilterCompletions(split(system(fullcmd), "\n"))
for line in completions_raw

View file

@ -36,6 +36,7 @@ function! suggest#CreateJob(useV2, file, callbacks)
endfunction
" TODO: Refactor combine (1)
function! suggest#NewKnown(command, sync, useV2, file, line, col, handler)
let result = copy(s:NimSuggest)
let result.lines = []
@ -49,7 +50,7 @@ function! suggest#NewKnown(command, sync, useV2, file, line, col, handler)
if !result.isAsync
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " " . (a:useV2 ? '--v2' : '') . " " . '--stdin' . " " . result.file
let fullcmd = 'echo -e ' . shellescape(query, 1) . '|' . jobcmdstr
let fullcmd = 'echo -e "' . query . '"|' . jobcmdstr
let result.lines = util#FilterCompletions(split(system(fullcmd), "\n"))
if len(result.lines) > 0
call a:handler.run(result)

View file

@ -75,7 +75,7 @@ endfunction
function! util#JumpToLocation(file, line, col)
if expand("%:p") != a:file
execute ":e " . a:file
execute ":e! " . a:file
endif
execute ":" . a:line
execute ":norm " . (a:col) . "|"
@ -298,7 +298,6 @@ try
let start_line = start[1]
let stop_line = stop[1]
let str = join(getline(start_line, stop_line), "\n")
echom str
call features#repl#send(str)
endfunction
catch

View file

@ -5,3 +5,5 @@ filetype plugin indent on
syntax enable
set ts=4 sts=4 sw=4
let g:nvim_nim_enable_async = 0

View file

@ -0,0 +1,15 @@
Given nim:
proc other = "foobar".echo
proc hello = "hello".echo
hello()
Execute:
set buftype=""
saveas! vader_workbench.nim
w!
norm G^
NimDefinition
Then:
AssertEqual 2, line(".")

View file

@ -18,14 +18,6 @@ Then:
Assert exists(":NimOutline") > 0
Assert exists(":NimOutlineUpdate") > 0
Execute:
NimInfo
NimDebug
NimDefinition
NimUsages
NimUsagesProject
NimOutline
Given cpp:
std::cout << "hello world" << std::endl;

View file

@ -33,30 +33,78 @@ if exists("g:ycm_semantic_triggers")
let g:ycm_semantic_triggers["nim"] = ['.']
endif
let g:nvim_nim_enable_async = has("nvim")
if !exists("g:nvim_nim_enable_async")
let g:nvim_nim_enable_async = has("nvim")
endif
let g:nvim_nim_exec_nim = CheckDependency("nim")
let g:nvim_nim_exec_nimble = CheckDependency("nimble")
let g:nvim_nim_exec_nimsuggest = CheckDependency("nimsuggest")
let g:nvim_nim_exec_bash = CheckDependency("bash")
let g:nvim_nim_deps_nim = FindNimModulesPath()
let g:nvim_nim_deps_nimble = FindNimbleModulesPath()
if !exists("g:nvim_nim_exec_nim")
let g:nvim_nim_exec_nim = CheckDependency("nim")
endif
let g:nvim_nim_outline_track_symbol = 1
let g:nvim_nim_highlighter_enable = 0
let g:nvim_nim_highlight_builtin = 1
if !exists("g:nvim_nim_exec_nimble")
let g:nvim_nim_exec_nimble = CheckDependency("nimble")
endif
let g:nvim_nim_outline_buffer = 1
let g:nvim_nim_outline_buffer_width = 30
if !exists("g:nvim_nim_exec_nimsuggest")
let g:nvim_nim_exec_nimsuggest = CheckDependency("nimsuggest")
endif
let g:nvim_nim_repl_height = 14
let g:nvim_nim_repl_vsplit = 0
if !exists("g:nvim_nim_exec_bash")
let g:nvim_nim_exec_bash = CheckDependency("bash")
endif
let g:nvim_nim_enable_default_binds = 1
let g:nvim_nim_enable_custom_textobjects = 1
if !exists("g:nvim_nim_deps_nim")
let g:nvim_nim_deps_nim = FindNimModulesPath()
endif
if !exists("g:nvim_nim_deps_nimble")
let g:nvim_nim_deps_nimble = FindNimbleModulesPath()
endif
if !exists("g:nvim_nim_outline_track_symbol")
let g:nvim_nim_outline_track_symbol = 1
endif
if !exists("g:nvim_nim_highlighter_enable")
let g:nvim_nim_highlighter_enable = 0
endif
if !exists("g:nvim_nim_highlight_builtin")
let g:nvim_nim_highlight_builtin = 1
endif
if !exists("g:nvim_nim_outline_buffer")
let g:nvim_nim_outline_buffer = 1
endif
if !exists("g:nvim_nim_outline_buffer_width")
let g:nvim_nim_outline_buffer_width = 30
endif
if !exists("g:nvim_nim_repl_height")
let g:nvim_nim_repl_height = 14
endif
if !exists("g:nvim_nim_repl_vsplit")
let g:nvim_nim_repl_vsplit = 0
endif
if !exists("g:nvim_nim_enable_default_binds")
let g:nvim_nim_enable_default_binds = 1
endif
if !exists("g:nvim_nim_enable_custom_textobjects")
let g:nvim_nim_enable_custom_textobjects = 1
endif
if !exists("g:nvim_nim_highlighter_enable")
let g:nvim_nim_highlighter_enable = 0
endif
if !exists("g:nvim_nim_highlight_builtin")
let g:nvim_nim_highlight_builtin = 1
endif
let g:nvim_nim_highlighter_enable = 0
let g:nvim_nim_highlight_builtin = 1
" let g:nvim_nim_highlighter_semantics = ["skConst", "skForVar", "skGlobalVar", "skGlobalLet", "skLet", "skModule", "skParam", "skTemp", "skVar"]
let g:nvim_nim_highlighter_semantics = []