parent
f1384258dc
commit
76e54f8ad5
4 changed files with 52 additions and 3 deletions
|
|
@ -60,7 +60,7 @@ function! modules#GetImports()
|
||||||
|
|
||||||
let [begin, end] = modules#ImportLineRange()
|
let [begin, end] = modules#ImportLineRange()
|
||||||
let lines = getline(begin, end)
|
let lines = getline(begin, end)
|
||||||
return filter(split(substitute(join(lines, ""), ",", "", "g"), " "), 'v:val !~ "^ *$"')[1:-1]
|
return sort(filter(split(substitute(join(lines, ""), ",", "", "g"), " "), 'v:val !~ "^ *$"')[1:-1])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! modules#ImportMap(imports)
|
function! modules#ImportMap(imports)
|
||||||
|
|
|
||||||
|
|
@ -219,3 +219,46 @@ endfunction
|
||||||
function! util#open_module_doc(module, symbol)
|
function! util#open_module_doc(module, symbol)
|
||||||
call system("$BROWSER " . "http://nim-lang.org/docs/" . a:module . ".html#" . a:symbol)
|
call system("$BROWSER " . "http://nim-lang.org/docs/" . a:module . ".html#" . a:symbol)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! util#SelectNimProc(inner)
|
||||||
|
let curline = nextnonblank(line("."))
|
||||||
|
let lastline = line("$")
|
||||||
|
let sl = curline
|
||||||
|
|
||||||
|
function! s:IsProcStart(l)
|
||||||
|
return getline(a:l) =~ "\s*\\(proc\\|template\\|macro\\|func\\|method\\)\\s\\+\\w\\+("
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
while sl > 0
|
||||||
|
if s:IsProcStart(sl) && (curline == sl || indent(sl) < indent(curline))
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let sl -= 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if !s:IsProcStart(sl)
|
||||||
|
normal <Esc>
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
call cursor(sl, 0)
|
||||||
|
normal! 0V
|
||||||
|
let el = sl + 1
|
||||||
|
|
||||||
|
while getline(el) =~ "^\\s*$" || indent(el) > indent(sl)
|
||||||
|
let el += 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
let el -= 1
|
||||||
|
if a:inner
|
||||||
|
while getline(el) =~ "^\\s*$"
|
||||||
|
let el -= 1
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
|
||||||
|
call cursor(el, 0)
|
||||||
|
normal! $
|
||||||
|
if a:inner
|
||||||
|
normal! h
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,11 @@ nnoremap <buffer> gd :NimDefinition<cr>
|
||||||
nnoremap <buffer> gt :NimInfo<cr>
|
nnoremap <buffer> gt :NimInfo<cr>
|
||||||
nnoremap <buffer> gT :NimWeb<cr>
|
nnoremap <buffer> gT :NimWeb<cr>
|
||||||
|
|
||||||
|
onoremap <silent>af :<C-U>call util#SelectNimProc(0)<CR>
|
||||||
|
onoremap <silent>if :<C-U>call util#SelectNimProc(1)<CR>
|
||||||
|
vnoremap <silent>af :<C-U>call util#SelectNimProc(0)<CR><Esc>gv
|
||||||
|
vnoremap <silent>if :<C-U>call util#SelectNimProc(1)<CR><Esc>gv
|
||||||
|
|
||||||
autocmd! BufReadPost,BufWritePost,CursorHold,InsertLeave,TextChanged,InsertEnter *.nim call highlighter#guard()
|
autocmd! BufReadPost,BufWritePost,CursorHold,InsertLeave,TextChanged,InsertEnter *.nim call highlighter#guard()
|
||||||
autocmd! BufWinEnter,BufWritePost,FileWritePost *.nim call features#outline#run(1)
|
autocmd! BufWinEnter,BufWritePost,FileWritePost *.nim call features#outline#run(1)
|
||||||
autocmd! VimResized,WinEnter * call features#outline#render()
|
autocmd! VimResized,WinEnter * call features#outline#render()
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ function! FindNimModulesPath()
|
||||||
return "/usr/lib/nim/"
|
return "/usr/lib/nim/"
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
if exists("g:ycm_semantic_triggers")
|
||||||
|
let g:ycm_semantic_triggers["nim"] = ['.', '(']
|
||||||
|
endif
|
||||||
|
|
||||||
let g:nvim_nim_exec_nim = CheckDependency("nim")
|
let g:nvim_nim_exec_nim = CheckDependency("nim")
|
||||||
let g:nvim_nim_exec_nimble = CheckDependency("nimble")
|
let g:nvim_nim_exec_nimble = CheckDependency("nimble")
|
||||||
|
|
@ -32,8 +35,6 @@ let g:nvim_nim_exec_bash = CheckDependency("bash")
|
||||||
let g:nvim_nim_deps_nim = FindNimModulesPath()
|
let g:nvim_nim_deps_nim = FindNimModulesPath()
|
||||||
let g:nvim_nim_deps_nimble = FindNimbleModulesPath()
|
let g:nvim_nim_deps_nimble = FindNimbleModulesPath()
|
||||||
|
|
||||||
let g:nvim_nim_highlighter_enable = 1
|
|
||||||
|
|
||||||
let g:nvim_nim_highlighter_enable = 1
|
let g:nvim_nim_highlighter_enable = 1
|
||||||
let g:nvim_nim_highlighter_semantic = 1
|
let g:nvim_nim_highlighter_semantic = 1
|
||||||
let g:nvim_nim_enable_async = 1
|
let g:nvim_nim_enable_async = 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue