Add jump to def test
- Fix global variable initialization - Remove broken shell escapes
This commit is contained in:
parent
66b4431f60
commit
17b22b6fc3
14 changed files with 97 additions and 40 deletions
|
|
@ -12,7 +12,6 @@ let s:NimDebugger = {
|
||||||
|
|
||||||
function! s:NimDebugger.on_stdout(job, chunk)
|
function! s:NimDebugger.on_stdout(job, chunk)
|
||||||
for line in a:chunk
|
for line in a:chunk
|
||||||
echom line
|
|
||||||
" *** endb| reached edb.nim(4) wat ***
|
" *** endb| reached edb.nim(4) wat ***
|
||||||
" let matched = matchlist(line, "\\*\\*\\* endb\|\(.*\)$")
|
" let matched = matchlist(line, "\\*\\*\\* endb\|\(.*\)$")
|
||||||
let matched = matchlist(line, "")
|
let matched = matchlist(line, "")
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ endfunction
|
||||||
|
|
||||||
|
|
||||||
function! features#definition#run()
|
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
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,13 +53,13 @@ function! features#info#web()
|
||||||
if modules#isGlobalImport(current_word)
|
if modules#isGlobalImport(current_word)
|
||||||
call util#open_module_doc(current_word, "")
|
call util#open_module_doc(current_word, "")
|
||||||
else
|
else
|
||||||
call suggest#New("def", 0, 0, s:New(1))
|
call suggest#New("def", !g:nvim_nim_enable_async, 0, s:New(1))
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! features#info#run()
|
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
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -250,7 +250,7 @@ function! features#outline#run(isUpdating)
|
||||||
if !a:isUpdating || s:IsOpen()
|
if !a:isUpdating || s:IsOpen()
|
||||||
" if s:BufferModified()
|
" if s:BufferModified()
|
||||||
let s:current_buffer = winnr()
|
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
|
" else
|
||||||
" call s:OutlineImpl.run(s:OutlineImpl.cache)
|
" call s:OutlineImpl.run(s:OutlineImpl.cache)
|
||||||
" endif
|
" endif
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ endfunction
|
||||||
|
|
||||||
function! features#rename#run(inProject)
|
function! features#rename#run(inProject)
|
||||||
let s:findInProject = a: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
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,14 +46,14 @@ endfunction
|
||||||
|
|
||||||
let s:UsagesDefinitionImpl = {}
|
let s:UsagesDefinitionImpl = {}
|
||||||
function! s:UsagesDefinitionImpl.run(data)
|
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
|
endfunction
|
||||||
|
|
||||||
function! features#usages#run(findInProject)
|
function! features#usages#run(findInProject)
|
||||||
cclose
|
cclose
|
||||||
call setqflist([])
|
call setqflist([])
|
||||||
let s:findInProject = a:findInProject
|
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
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -111,8 +111,8 @@ function highlighter#New()
|
||||||
let result.file = expand("%:p")
|
let result.file = expand("%:p")
|
||||||
let result.tempfile = util#WriteMemfile()
|
let result.tempfile = util#WriteMemfile()
|
||||||
let result.job = jobstart([g:nvim_nim_exec_nimsuggest, '--v2', '--stdin', result.file], result)
|
let result.job = jobstart([g:nvim_nim_exec_nimsuggest, '--v2', '--stdin', result.file], result)
|
||||||
|
let cmd = "highlight " . result.file . ";" . result.tempfile . ":1:1\nquit\n"
|
||||||
call jobsend(result.job, "highlight " . result.file . ";" . result.tempfile . ":1:1\nquit\n")
|
call jobsend(result.job, cmd)
|
||||||
|
|
||||||
if !exists("b:highlights")
|
if !exists("b:highlights")
|
||||||
let b:highlights = []
|
let b:highlights = []
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,14 @@ function! omni#item_module(name, file, type)
|
||||||
\ }
|
\ }
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" TODO: Refactor combine (1)
|
||||||
function! omni#nimsuggest(file, l, c)
|
function! omni#nimsuggest(file, l, c)
|
||||||
let completions = []
|
let completions = []
|
||||||
let tempfile = util#WriteMemfile()
|
let tempfile = util#WriteMemfile()
|
||||||
|
|
||||||
let query = "sug " . a:file . ";" . tempfile . ":" . a:l . ":" . a:c
|
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 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"))
|
let completions_raw = util#FilterCompletions(split(system(fullcmd), "\n"))
|
||||||
|
|
||||||
for line in completions_raw
|
for line in completions_raw
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ function! suggest#CreateJob(useV2, file, callbacks)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" TODO: Refactor combine (1)
|
||||||
function! suggest#NewKnown(command, sync, useV2, file, line, col, handler)
|
function! suggest#NewKnown(command, sync, useV2, file, line, col, handler)
|
||||||
let result = copy(s:NimSuggest)
|
let result = copy(s:NimSuggest)
|
||||||
let result.lines = []
|
let result.lines = []
|
||||||
|
|
@ -49,7 +50,7 @@ function! suggest#NewKnown(command, sync, useV2, file, line, col, handler)
|
||||||
|
|
||||||
if !result.isAsync
|
if !result.isAsync
|
||||||
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " " . (a:useV2 ? '--v2' : '') . " " . '--stdin' . " " . result.file
|
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"))
|
let result.lines = util#FilterCompletions(split(system(fullcmd), "\n"))
|
||||||
if len(result.lines) > 0
|
if len(result.lines) > 0
|
||||||
call a:handler.run(result)
|
call a:handler.run(result)
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ endfunction
|
||||||
|
|
||||||
function! util#JumpToLocation(file, line, col)
|
function! util#JumpToLocation(file, line, col)
|
||||||
if expand("%:p") != a:file
|
if expand("%:p") != a:file
|
||||||
execute ":e " . a:file
|
execute ":e! " . a:file
|
||||||
endif
|
endif
|
||||||
execute ":" . a:line
|
execute ":" . a:line
|
||||||
execute ":norm " . (a:col) . "|"
|
execute ":norm " . (a:col) . "|"
|
||||||
|
|
@ -298,7 +298,6 @@ try
|
||||||
let start_line = start[1]
|
let start_line = start[1]
|
||||||
let stop_line = stop[1]
|
let stop_line = stop[1]
|
||||||
let str = join(getline(start_line, stop_line), "\n")
|
let str = join(getline(start_line, stop_line), "\n")
|
||||||
echom str
|
|
||||||
call features#repl#send(str)
|
call features#repl#send(str)
|
||||||
endfunction
|
endfunction
|
||||||
catch
|
catch
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,5 @@ filetype plugin indent on
|
||||||
syntax enable
|
syntax enable
|
||||||
|
|
||||||
set ts=4 sts=4 sw=4
|
set ts=4 sts=4 sw=4
|
||||||
|
|
||||||
|
let g:nvim_nim_enable_async = 0
|
||||||
|
|
|
||||||
15
other/tests/vim/definition.vader
Normal file
15
other/tests/vim/definition.vader
Normal 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(".")
|
||||||
|
|
@ -18,14 +18,6 @@ Then:
|
||||||
Assert exists(":NimOutline") > 0
|
Assert exists(":NimOutline") > 0
|
||||||
Assert exists(":NimOutlineUpdate") > 0
|
Assert exists(":NimOutlineUpdate") > 0
|
||||||
|
|
||||||
Execute:
|
|
||||||
NimInfo
|
|
||||||
NimDebug
|
|
||||||
NimDefinition
|
|
||||||
NimUsages
|
|
||||||
NimUsagesProject
|
|
||||||
NimOutline
|
|
||||||
|
|
||||||
Given cpp:
|
Given cpp:
|
||||||
std::cout << "hello world" << std::endl;
|
std::cout << "hello world" << std::endl;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,30 +33,78 @@ if exists("g:ycm_semantic_triggers")
|
||||||
let g:ycm_semantic_triggers["nim"] = ['.']
|
let g:ycm_semantic_triggers["nim"] = ['.']
|
||||||
endif
|
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")
|
if !exists("g:nvim_nim_exec_nim")
|
||||||
let g:nvim_nim_exec_nimble = CheckDependency("nimble")
|
let g:nvim_nim_exec_nim = CheckDependency("nim")
|
||||||
let g:nvim_nim_exec_nimsuggest = CheckDependency("nimsuggest")
|
endif
|
||||||
let g:nvim_nim_exec_bash = CheckDependency("bash")
|
|
||||||
let g:nvim_nim_deps_nim = FindNimModulesPath()
|
|
||||||
let g:nvim_nim_deps_nimble = FindNimbleModulesPath()
|
|
||||||
|
|
||||||
let g:nvim_nim_outline_track_symbol = 1
|
if !exists("g:nvim_nim_exec_nimble")
|
||||||
let g:nvim_nim_highlighter_enable = 0
|
let g:nvim_nim_exec_nimble = CheckDependency("nimble")
|
||||||
let g:nvim_nim_highlight_builtin = 1
|
endif
|
||||||
|
|
||||||
let g:nvim_nim_outline_buffer = 1
|
if !exists("g:nvim_nim_exec_nimsuggest")
|
||||||
let g:nvim_nim_outline_buffer_width = 30
|
let g:nvim_nim_exec_nimsuggest = CheckDependency("nimsuggest")
|
||||||
|
endif
|
||||||
|
|
||||||
let g:nvim_nim_repl_height = 14
|
if !exists("g:nvim_nim_exec_bash")
|
||||||
let g:nvim_nim_repl_vsplit = 0
|
let g:nvim_nim_exec_bash = CheckDependency("bash")
|
||||||
|
endif
|
||||||
|
|
||||||
let g:nvim_nim_enable_default_binds = 1
|
if !exists("g:nvim_nim_deps_nim")
|
||||||
let g:nvim_nim_enable_custom_textobjects = 1
|
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 = ["skConst", "skForVar", "skGlobalVar", "skGlobalLet", "skLet", "skModule", "skParam", "skTemp", "skVar"]
|
||||||
let g:nvim_nim_highlighter_semantics = []
|
let g:nvim_nim_highlighter_semantics = []
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue