From c80bb00a557115350d08b20ff4d03d00894f1c94 Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Thu, 12 Dec 2019 19:41:53 +0530 Subject: [PATCH] nvim: init.vim: Revert back to using cscope with fzf Signed-off-by: Sanchayan Maity --- nvim/init.vim | 122 ++++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 58 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index e03fffb..28080fa 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -384,25 +384,25 @@ augroup c_maps au FileType c nmap cu :NeomakeSh cscope -bqR au FileType c nmap cr :cs reset - au FileType c nmap ss :call Cscope("s", expand('')) - au FileType c nmap sg :call Cscope("g", expand('')) - au FileType c nmap sd :call Cscope("d", expand('')) - au FileType c nmap sc :call Cscope("c", expand('')) - au FileType c nmap st :call Cscope("t", expand('')) - au FileType c nmap se :call Cscope("e", expand('')) - au FileType c nmap sf :call Cscope("f", expand('')) - au FileType c nmap si :call Cscope("i", expand('')) - au FileType c nmap sa :call Cscope("a", expand('')) + au FileType c nmap ss :call Cscope('0', expand('')) + au FileType c nmap sg :call Cscope('1', expand('')) + au FileType c nmap sd :call Cscope('2', expand('')) + au FileType c nmap sc :call Cscope('3', expand('')) + au FileType c nmap st :call Cscope('4', expand('')) + au FileType c nmap se :call Cscope('6', expand('')) + au FileType c nmap sf :call Cscope('7', expand('')) + au FileType c nmap si :call Cscope('8', expand('')) + au FileType c nmap sa :call Cscope('9', expand('')) - au FileType c nmap ss :call CscopeQuery("s") - au FileType c nmap sg :call CscopeQuery("g") - au FileType c nmap sd :call CscopeQuery("d") - au FileType c nmap sc :call CscopeQuery("c") - au FileType c nmap st :call CscopeQuery("t") - au FileType c nmap se :call CscopeQuery("e") - au FileType c nmap sf :call CscopeQuery("f") - au FileType c nmap si :call CscopeQuery("i") - au FileType c nmap sa :call CscopeQuery("a") + au FileType c nmap ss :call CscopeQuery('0') + au FileType c nmap sg :call CscopeQuery('1') + au FileType c nmap sd :call CscopeQuery('2') + au FileType c nmap sc :call CscopeQuery('3') + au FileType c nmap st :call CscopeQuery('4') + au FileType c nmap se :call CscopeQuery('6') + au FileType c nmap sf :call CscopeQuery('7') + au FileType c nmap si :call CscopeQuery('8') + au FileType c nmap sa :call CscopeQuery('9') augroup END augroup rust_maps @@ -650,50 +650,56 @@ let g:netrw_liststyle = 3 let g:netrw_browse_split = 4 let g:netrw_altv = 1 let g:netrw_winsize = 10 + " ----------------------------- Functions ------------------------------------ -" For CScope and Quickfix -" https://medium.com/@lakshmankumar12/quickfix-and-location-list-in-vim-ca0292ac894d -" https://medium.com/@lakshmankumar12/vim-and-cscope-5f4558c8a8b8 -function! Cscope(oper, currword) - execute "normal mZ" - execute "set csqf=" . a:oper . "-" - execute "lcs find " a:oper . " " . a:currword - execute "lopen" - execute "wincmd p" - execute "normal `Z" - execute "set csqf=" +function! Cscope(option, query) + let color = '{ x = $1; $1 = ""; z = $3; $3 = ""; printf "\033[34m%s\033[0m:\033[31m%s\033[0m\011\033[37m%s\033[0m\n", x,z,$0; }' + let opts = { + \ 'source': "cscope -dL" . a:option . " " . a:query . " | awk '" . color . "'", + \ 'options': ['--ansi', '--prompt', '> ', + \ '--multi', '--bind', 'alt-a:select-all,alt-d:deselect-all', + \ '--color', 'info:144,prompt:161,spinner:135,pointer:135,marker:118', + \ '--color', 'fg:252,bg:233,hl:67,fg+:252,bg+:235,hl+:81'], + \ 'down': '40%' + \ } + function! opts.sink(lines) + let data = split(a:lines) + let file = split(data[0], ":") + execute 'e ' . '+' . file[1] . ' ' . file[0] + endfunction + call fzf#run(opts) endfunction function! CscopeQuery(option) - call inputsave() - if a:option == "s" - let query = input('C Symbol: ') - elseif a:option == "g" - let query = input('Definition: ') - elseif a:option == "d" - let query = input('Functions called by: ') - elseif a:option == "c" - let query = input('Functions calling: ') - elseif a:option == "t" - let query = input('Text: ') - elseif a:option == "e" - let query = input('Egrep: ') - elseif a:option == "f" - let query = input('File: ') - elseif a:option == "i" - let query = input('Files #including: ') - elseif a:option == "a" - let query = input('Assignments to: ') - else - echo "Invalid option!" - return - endif - call inputrestore() - if query != "" - call Cscope(a:option, query) - else - echom "Cancelled Search!" - endif + call inputsave() + if a:option == '0' + let query = input('C Symbol: ') + elseif a:option == '1' + let query = input('Definition: ') + elseif a:option == '2' + let query = input('Functions called by: ') + elseif a:option == '3' + let query = input('Functions calling: ') + elseif a:option == '4' + let query = input('Text: ') + elseif a:option == '6' + let query = input('Egrep: ') + elseif a:option == '7' + let query = input('File: ') + elseif a:option == '8' + let query = input('Files #including: ') + elseif a:option == '9' + let query = input('Assignments to: ') + else + echo "Invalid option!" + return + endif + call inputrestore() + if query != "" + call Cscope(a:option, query) + else + echom "Cancelled Search!" + endif endfunction function! NvimGdbNoTKeymaps()