From dc2615545af4ab3335cc8aebd82f41ab96de525b Mon Sep 17 00:00:00 2001 From: baabelfish Date: Thu, 4 Feb 2016 02:58:03 +0200 Subject: [PATCH] Outline --- README.md | 9 +- autoload/features/info.vim | 24 +++- autoload/features/outline.vim | 200 ++++++++++++++++++++++++++++++---- autoload/util.vim | 11 ++ ftdetect/nim.vim | 3 + ftplugin/nim.vim | 41 ++++--- other/pic1.png | Bin 0 -> 79587 bytes plugin/nim.vim | 2 - syntax/nimoutline.vim | 30 +++++ 9 files changed, 269 insertions(+), 51 deletions(-) create mode 100644 other/pic1.png create mode 100644 syntax/nimoutline.vim diff --git a/README.md b/README.md index 55e423e..74cb7d4 100644 --- a/README.md +++ b/README.md @@ -42,14 +42,17 @@ Nim support for Neovim - [x] NimRenameSymbol - [ ] NimRenameSymbolProject +- [ ] Misc + - [ ] Airline integration + - [ ] IDE features - [x] Neomake + - [x] View online documentation + - [x] Outline with a proper tagbar - [ ] Search and view online documentation - [ ] Usages with unite - [ ] Outline with unite - - [ ] Outline with a proper tagbar - [ ] Parse proc parameter types for parameter completion - - [ ] Airline integration - [ ] When lines are added or removed use cached highlighter results - [ ] When editing line, remove highlighter results from that line @@ -122,8 +125,6 @@ Nim support for Neovim ## v0.2 ## v0.3 -## v0.1 -## v0.1 # TASKS diff --git a/autoload/features/info.vim b/autoload/features/info.vim index 39990ef..65c8779 100644 --- a/autoload/features/info.vim +++ b/autoload/features/info.vim @@ -6,12 +6,23 @@ let s:loaded = 1 let s:InfoImpl = {} +function! s:New(useWeb) + let result = copy(s:InfoImpl) + let result.useWeb = a:useWeb + return result +endfunction + function! s:InfoImpl.run(data) if len(a:data.lines) == 0 echo "No information found" - else - let res = util#ParseV1(a:data.lines[0]) + return + endif + let res = util#ParseV1(a:data.lines[0]) + + if self.useWeb + call util#open_module_doc(res.location, res.lname) + else echohl None echohl Function | echon res.lname echohl Comment | echon "\n » " @@ -37,6 +48,11 @@ function! s:InfoImpl.run(data) endfunction -function! features#info#run() - call suggest#New("def", 0, 0, s:InfoImpl) +function! features#info#web() + call suggest#New("def", 1, 0, s:New(1)) +endfunction + + +function! features#info#run() + call suggest#New("def", 1, 0, s:New(0)) endfunction diff --git a/autoload/features/outline.vim b/autoload/features/outline.vim index 3815603..63e3302 100644 --- a/autoload/features/outline.vim +++ b/autoload/features/outline.vim @@ -3,33 +3,193 @@ if exists("s:loaded") endif let s:loaded = 1 +function! features#outline#renderable(parsed) + return { + \ 'line': a:parsed.line, + \ 'col': a:parsed.col, + \ 'name': a:parsed.lname, + \ 'kind': a:parsed.kind } +endfunction -let s:OutlineImpl = { - \ 'pty': 1, +let s:window = -1 +let s:goto_table = {} +let s:groups = {} +let s:group_order = ["Types", "Callables", "Constants", "Globals", "Imports"] +let s:symbols = { + \ 'skProc': "proc", + \ 'skTemplate': "template", + \ 'skType': "", + \ 'skMacro': "macro", + \ 'skMethod': "function", + \ 'skField': "field", + \ 'skAlias': "alias", + \ 'skConst': "constant", + \ 'skConverter': "converter", + \ 'skDynLib': "dynlib", + \ 'skEnumField': "enum", + \ 'skGlobalVar': "var", + \ 'skGlobalLet': "let", + \ 'skIterator': "iterator", + \ 'skLabel': "label", + \ 'skLet': "constant", + \ 'skModule': "module", + \ 'skPackage': "package", \ } -function! s:OutlineImpl.run(data) - for line in a:data.lines - if len(line) == 0 + " \ 'skField': "Fields", +let s:group_aliases = { + \ 'skType': "Types", + \ 'skProc': "Callables", + \ 'skTemplate': "Callables", + \ 'skMacro': "Callables", + \ 'skMethod': "Callables", + \ 'skConverter': "Callables", + \ 'skIterator': "Callables", + \ 'skConst': "Constants", + \ 'skLet': "Constants", + \ 'skGlobalVar': "Globals", + \ 'skGlobalLet': "Globals", + \ 'skDynLib': "Imports", + \ 'skModule': "Imports", + \ 'skPackage': "Imports", + \ } + +function! s:CreateSymbolRow(symbol) + let result = " » " . a:symbol.name + if len(s:symbols[a:symbol.kind]) > 0 + let result .= " (" . s:symbols[a:symbol.kind] . ")" + endif + return result +endfunction + +function! s:ConfigureOutlineBuffer() + if s:IsOpen() + return + endif + + let s:window = winnr() + vsplit __nim_outline__ + setlocal filetype=nimoutline + setlocal buftype=nofile + setlocal nonumber + setlocal nowrap + nnoremap :call features#outline#JumpToSymbol(0) + nnoremap o :call features#outline#JumpToSymbol(1) +endfunction + +function! features#outline#JumpToSymbol(stay) + if !s:IsFocused() + return + endif + + let l = line(".") + if !has_key(s:goto_table, l) + return + endif + + let [jl, jc] = s:goto_table[l] + call util#JumpToWindow(s:window, jl, jc) + normal! ^ + + if a:stay + normal! zt + wincmd p + endif +endfunction + +function! s:UpdateOutline(groups) + let s:goto_table = {} + let s:groups = a:groups + call s:ConfigureOutlineBuffer() + call s:RenderOutline() +endfunction + +function! s:RenderOutline() + let wasFocused = s:IsFocused() + + call s:Focus() + if !s:IsFocused() + return + endif + + exec "silent vertical resize " . g:nvim_nim_outline_buffer_width + + let rlines = [] + + for groupname in s:group_order + if len(s:groups[groupname]) == 0 continue endif - let [_, node, fullname, type, filename, line, column, doc, random] = split(line, " ") - let name = join(split(fullname, "\\.")[1:], ".") - call setqflist([{ - \ 'filename': filename, - \ 'lnum': line, - \ 'col': column + 1, - \ 'text': node . " : " . name }], - \ 'a') + + call add(rlines, groupname) + + for symbol in s:groups[groupname] + let s:goto_table[len(rlines) + 1] = [symbol.line, symbol.col] + call add(rlines, s:CreateSymbolRow(symbol)) + endfor + call add(rlines, "") endfor - copen - nnoremap :call util#JumpFromQuickfix(0) - nnoremap o :call util#JumpFromQuickfix(1) + + let idx = 1 + for line in rlines + call setline(idx, line) + let idx += 1 + endfor + + exec ":" . len(rlines) + normal! dG + if !wasFocused + wincmd p + endif endfunction -function! features#outline#run() - cclose - call setqflist([]) - call suggest#New("outline", 0, 1, s:OutlineImpl) +function! s:Window() + return bufwinnr("__nim_outline__") +endfunction + +function! s:IsOpen() + return s:Window() != -1 +endfunction + +function! s:IsFocused() + return s:IsOpen() && s:Window() == winnr() +endfunction + +function! s:Focus() + if s:IsOpen() + exec ":" . s:Window() . "wincmd w" + endif +endfunction + +function! features#outline#render() + call s:RenderOutline() +endfunction + +let s:OutlineImpl = {} +function! s:OutlineImpl.run(data) + let s:groups = { + \ "Types": [], + \ "Callables": [], + \ "Fields": [], + \ "Constants": [], + \ "Globals": [], + \ "Imports": [], + \ } + + for line in a:data.lines + let p = util#ParseV2(line) + if has_key(s:group_aliases, p.kind) + let renderable = features#outline#renderable(p) + call add(s:groups[s:group_aliases[p.kind]], renderable) + endif + endfor + + call s:UpdateOutline(s:groups) +endfunction + +function! features#outline#run(isUpdating) + if !a:isUpdating || s:IsOpen() + call suggest#New("outline", 1, 1, s:OutlineImpl) + endif endfunction diff --git a/autoload/util.vim b/autoload/util.vim index 6903299..075ad03 100644 --- a/autoload/util.vim +++ b/autoload/util.vim @@ -53,6 +53,13 @@ function! util#CheckDependency(command) endfunction +function! util#JumpToWindow(window, line, col) + execute ":" . a:window . "wincmd w" + execute ":" . a:line + execute ":norm " . (a:col) . "|" +endfunction + + function! util#JumpToLocation(file, line, col) if expand("%:p") != a:file execute ":e " . a:file @@ -195,3 +202,7 @@ function! util#djb(str) endfor return float2nr(hash) endfunction + +function! util#open_module_doc(module, symbol) + call system("$BROWSER " . "http://nim-lang.org/docs/" . a:module . ".html#" . a:symbol) +endfunction diff --git a/ftdetect/nim.vim b/ftdetect/nim.vim index d349598..69bff37 100644 --- a/ftdetect/nim.vim +++ b/ftdetect/nim.vim @@ -14,4 +14,7 @@ let g:nvim_nim_highlight_use_unite = 0 let g:nvim_nim_autocomplete = "omni" " omni, deoplete, ycm let g:nvim_nim_outline = "quickfix" " quickfix, outline +let g:nvim_nim_outline_buffer = 1 +let g:nvim_nim_outline_buffer_width = 30 + let g:nvim_nim_highlighter_semantics = ["skConst", "skForVar", "skGlobalVar", "skGlobalLet", "skLet", "skModule", "skParam", "skTemp", "skVar"] diff --git a/ftplugin/nim.vim b/ftplugin/nim.vim index b60c26a..c8278db 100644 --- a/ftplugin/nim.vim +++ b/ftplugin/nim.vim @@ -1,6 +1,6 @@ -" if exists("b:loaded") -" finish -" endif +if exists("b:loaded") + finish +endif let b:loaded = 1 setlocal formatoptions-=t formatoptions+=l @@ -11,31 +11,30 @@ setlocal omnifunc=omni#nim command! NimDefinition :call features#definition#run() command! NimInfo :call features#info#run() +command! NimWeb :call features#info#web() command! NimUsages :call features#usages#run(0) command! NimUsagesProject :call features#usages#run(1) command! NimRenameSymbol :call features#rename#run(0) command! NimRenameSymbolProject :call features#rename#run(1) command! NimDebug :call features#debug#run() -command! NimOutline :call features#outline#run() +command! NimOutline :call features#outline#run(0) -command! NimEdb :call features#debugger#run() -command! NimEdbStop :call features#debugger#stop() -command! NimEdbContinue :call features#debugger#continue() -command! NimEdbStepInto :call features#debugger#stepinto() -command! NimEdbStepOver :call features#debugger#stepover() -command! NimEdbSkipCurrent :call features#debugger#skipcurrent() -command! NimEdbIgonore :call features#debugger#ignore() -command! NimEdbContinue :call features#debugger#continue() -command! NimEdbToggleBP :call features#debugger#togglebp() +command! NimEdb :call features#debugger#run() +command! NimEdbStop :call features#debugger#stop() +command! NimEdbContinue :call features#debugger#continue() +command! NimEdbStepInto :call features#debugger#stepinto() +command! NimEdbStepOver :call features#debugger#stepover() +command! NimEdbSkipCurrent :call features#debugger#skipcurrent() +command! NimEdbIgonore :call features#debugger#ignore() +command! NimEdbContinue :call features#debugger#continue() +command! NimEdbToggleBP :call features#debugger#togglebp() nnoremap :NimDefinition -nnoremap gd :NimDefinition -nnoremap gt :NimInfo -nnoremap gT :NimInfoVerbose - -autocmd! CursorHold,InsertLeave,TextChanged,InsertEnter *.nim call highlighter#guard() -autocmd! BufReadPost,BufWritePost *.nim call highlighter#guard() -" autocmd! BufWinEnter quickfix let g:qfix_win = bufnr("$") -" autocmd! BufWinLeave * if exists("g:qfix_win") && expand("") == g:qfix_win | call features#usages#clear_matches() | unlet! g:qfix_win | endif +nnoremap gd :NimDefinition +nnoremap gt :NimInfo +nnoremap gT :NimWeb +autocmd! BufReadPost,BufWritePost,CursorHold,InsertLeave,TextChanged,InsertEnter *.nim call highlighter#guard() +autocmd! BufWinEnter,BufWritePost,FileWritePost *.nim call features#outline#run(1) +autocmd! VimResized,WinEnter * call features#outline#render() call highlighter#guard() diff --git a/other/pic1.png b/other/pic1.png new file mode 100644 index 0000000000000000000000000000000000000000..4df41f8b3e5be9e3e2383f2c1f62802a67c40138 GIT binary patch literal 79587 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 M)ii{atJ{SAKXA{jF#rGn literal 0 HcmV?d00001 diff --git a/plugin/nim.vim b/plugin/nim.vim index cf2bb5e..896b584 100644 --- a/plugin/nim.vim +++ b/plugin/nim.vim @@ -3,8 +3,6 @@ " endif " let s:loaded = 1 -" echom join(util#ParseSignature("proc (dest:string,sep:string; startLen:Natural):string{.moro.}"), " -> ") - let g:nvim_nim_exec_nim = util#CheckDependency("nim") let g:nvim_nim_exec_nimble = util#CheckDependency("nimble") let g:nvim_nim_exec_nimsuggest = util#CheckDependency("nimsuggest") diff --git a/syntax/nimoutline.vim b/syntax/nimoutline.vim new file mode 100644 index 0000000..3677f5d --- /dev/null +++ b/syntax/nimoutline.vim @@ -0,0 +1,30 @@ +syntax keyword nimoTypes Types +syntax keyword nimoCallables Callables +syntax keyword nimoConstants Constants +syntax keyword nimoGlobals Globals +syntax keyword nimoImports Imports + +syntax match nimoSeparator "[»()<>\[\]]" +syntax match nimoDetail "(\(\w\+\))" + +hi link nimoConstants Constant +hi link nimoConverters Function +hi link nimoFields Type +hi link nimoGlobals Constant +hi link nimoInclude Include +hi link nimoIterators Function +hi link nimoMacros Macro +hi link nimoMethods Function +hi link nimoModules Include +hi link nimoPackages Include +hi link nimoProcs Function +hi link nimoTemplates Function +hi link nimoTypes Type +hi link nimoSeparator Comment + +hi link nimoTypes Type +hi link nimoCallables Function +hi link nimoConstants Constant +hi link nimoGlobals Identifier +hi link nimoImports Include +hi link nimoDetail Identifier