diff --git a/lua/coc/lua.lua b/lua/coc/lua.lua new file mode 100644 index 0000000..d4c5c4f --- /dev/null +++ b/lua/coc/lua.lua @@ -0,0 +1,145 @@ +vim.api.nvim_exec([[ +" Use tab for trigger completion with characters ahead and navigate. +" Use command ':verbose imap ' to make sure tab is not mapped by other plugin. +inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() +inoremap pumvisible() ? "\" : "\" + +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +" Use to trigger completion. +inoremap coc#refresh() + +" Use to confirm completion, `u` means break undo chain at current position. +" Coc only does snippet and additional edit on confirm. +inoremap pumvisible() ? "\" : "\u\" + +" Use `[c` and `]c` to navigate diagnostics +nmap [c (coc-diagnostic-prev) +nmap ]c (coc-diagnostic-next) + +" Remap keys for gotos +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) + +" Use K to show documentation in preview window +nnoremap K :call show_documentation() + +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + else + call CocAction('doHover') + endif +endfunction + +" Highlight symbol under cursor on CursorHold +autocmd CursorHold * silent call CocActionAsync('highlight') + +" Remap for rename current word +nmap rn (coc-rename) + +" Remap for format selected region +xmap f (coc-format-selected) +nmap f (coc-format-selected) + +augroup mygroup + autocmd! + " Setup formatexpr specified filetype(s). + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + " Update signature help on jump placeholder + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end + +" Remap for do codeAction of selected region, ex: `aap` for current paragraph +xmap a (coc-codeaction-selected) +nmap a (coc-codeaction-selected) + +" Remap for do codeAction of current line +nmap ac (coc-codeaction) +" Fix autofix problem of current line +nmap qf (coc-fix-current) + +" Use for select selections ranges, needs server support, like: coc-tsserver, coc-python +nmap (coc-range-select) +xmap (coc-range-select) +xmap (coc-range-select-backword) + +" Use `:Format` to format current buffer +command! -nargs=0 Format :call CocAction('format') + +" Use `:Fold` to fold current buffer +command! -nargs=? Fold :call CocAction('fold', ) + +" use `:OR` for organize import of current buffer +command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') + +" Add status line support, for integration with other plugin, checkout `:h coc-status` +set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} + +" Using CocList +" Show all diagnostics +nnoremap a :CocList diagnostics +" Manage extensions +nnoremap e :CocList extensions +" Show commands +nnoremap c :CocList commands +" Find symbol of current document +nnoremap o :CocList outline +" Search workspace symbols +nnoremap s :CocList -I symbols +" Do default action for next item. +nnoremap j :CocNext +" Do default action for previous item. +nnoremap k :CocPrev +" Resume latest coc list +nnoremap p :CocListResume + +function! GetHighlightGroup() + let l:s = synID(line('.'), col('.'), 1) + echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name') + endfunction + +nnoremap gA :call GetHighlightGroup() + +set fillchars=eob:\ + +tnoremap +" start terminal in insert mode +au BufEnter * if &buftype == 'terminal' | :startinsert | endif + +" open terminal on the bottom +function! OpenTerminal() + split term://bash + resize 10 +endfunction +nnoremap :call OpenTerminal() +nnoremap :vnew term://bash + +set ignorecase +set noswapfile +set title +set shortmess+=c +set updatetime=250 "for gitsigns" + +" new tab and switching between em + +nnoremap : tabnew +nnoremap : tabp +nnoremap : tabn + +map k +map j +map l +map h + +inoremap kk + +]]) diff --git a/lua/statusline/lua.lua b/lua/statusline/lua.lua index 5eeec89..0486c05 100644 --- a/lua/statusline/lua.lua +++ b/lua/statusline/lua.lua @@ -24,7 +24,7 @@ local colors = { gls.left[1] = { leftRounded = { provider = function() return '' end, - highlight = { colors.green, colors.bg } + highlight = { colors.nord, colors.bg } }, } @@ -33,7 +33,7 @@ gls.left[2] = { provider = function() return ' 󰀘 ' end, - highlight = {colors.bg,colors.green}, + highlight = {colors.bg,colors.nord}, separator = ' ', separator_highlight = {colors.lightbg,colors.lightbg}, }, @@ -63,22 +63,6 @@ gls.left[5] = { }, } -gls.left[6] = { - GitIcon = { - provider = function() return '  ' end, - condition = require('galaxyline.provider_vcs').check_git_workspace, - highlight = {colors.red,colors.line_bg}, - } -} - -gls.left[7] = { - GitBranch = { - provider = 'GitBranch', - condition = require('galaxyline.provider_vcs').check_git_workspace, - highlight = {colors.red,colors.line_bg,'bold'}, - } -} - local checkwidth = function() local squeeze_width = vim.fn.winwidth(0) / 2 if squeeze_width > 40 then @@ -87,7 +71,7 @@ local checkwidth = function() return false end -gls.left[8] = { +gls.left[6] = { DiffAdd = { provider = 'DiffAdd', condition = checkwidth, @@ -96,7 +80,7 @@ gls.left[8] = { } } -gls.left[9] = { +gls.left[7] = { DiffModified = { provider = 'DiffModified', condition = checkwidth, @@ -105,7 +89,7 @@ gls.left[9] = { } } -gls.left[10] = { +gls.left[8] = { DiffRemove = { provider = 'DiffRemove', condition = checkwidth, @@ -114,7 +98,7 @@ gls.left[10] = { } } -gls.left[10] = { +gls.left[9] = { LeftEnd = { provider = function() return ' ' end, separator = ' ', @@ -123,7 +107,7 @@ gls.left[10] = { } } -gls.left[11] = { +gls.left[10] = { DiagnosticError = { provider = 'DiagnosticError', icon = '  ', @@ -131,14 +115,14 @@ gls.left[11] = { } } -gls.left[12] = { +gls.left[11] = { Space = { provider = function () return ' ' end, highlight = {colors.line_bg,colors.line_bg} } } -gls.left[13] = { +gls.left[12] = { DiagnosticWarn = { provider = 'DiagnosticWarn', icon = '  ', @@ -147,31 +131,59 @@ gls.left[13] = { } gls.right[1] = { + GitIcon = { + provider = function() return '  ' end, + condition = require('galaxyline.provider_vcs').check_git_workspace, + highlight = {colors.green,colors.line_bg}, + } +} + +gls.right[2] = { + GitBranch = { + provider = 'GitBranch', + condition = require('galaxyline.provider_vcs').check_git_workspace, + highlight = {colors.green,colors.line_bg}, + } +} + +gls.right[3] = { right_LeftRounded = { provider = function() return '' end, - highlight = { colors.nord, colors.bg } + separator = ' ', + separator_highlight = {colors.bg,colors.bg}, + highlight = { colors.red, colors.bg } }, } - -gls.right[2]= { - FileFormat = { - provider = 'FileFormat', - highlight = {colors.bg,colors.nord}, - } +gls.right[4] = { + SiMode = { + provider = function() + local alias = { + n = 'NORMAL', + i = 'INSERT', + c = 'COMMAND', + V = 'VISUAL', + [''] = 'VISUAL', + v = 'VISUAL', + R = 'REPLACE', + } + return alias[vim.fn.mode()] + end, + highlight = { colors.bg, colors.red }, + }, } -gls.right[3] = { +gls.right[5] = { PerCent = { provider = 'LinePercent', separator = ' ', - separator_highlight = {colors.nord,colors.nord}, + separator_highlight = {colors.red,colors.red}, highlight = {colors.bg,colors.fg}, } } -gls.right[4] = { +gls.right[6] = { rightRounded = { provider = function() return '' end, highlight = { colors.fg, colors.bg }