diff --git a/vimrcs/google.vim b/vimrcs/google.vim index 4ef15905..3f9a860f 100644 --- a/vimrcs/google.vim +++ b/vimrcs/google.vim @@ -5,6 +5,9 @@ source /usr/share/vim/google/google.vim Glug piper plugin[mappings] " g4 plugin +" :G4Edit :G4Revert :G4Add +" :G4Pending +" :help g4 Glug g4 Glug youcompleteme-google @@ -14,6 +17,19 @@ let g:ycm_always_populate_location_list = 1 " Use :BlazeDepsUpdate to update the BUILD file dependency Glug blazedeps +" code format for build file +Glug codefmt +Glug codefmt-google +autocmd FileType bzl AutoFormatBuffer buildifier + +Glug relatedfiles plugin[mappings]=',2' + +" Codesearch +" cs code_search_query +" cf open current file bn cs +Glug corpweb plugin[mappings] + + au User lsp_setup call lsp#register_server({ \ 'name': 'CiderLSP', \ 'cmd': {server_info->[ @@ -47,3 +63,39 @@ nnoremap hq :Headerquery " Show diff of the current file in a new pane. nnoremap d :SignifyDiff! +" If the file path start with //, treat it as from the client root. +function GetGoogle3Path(filepath, clientpath) + let l:dst_matches = matchlist(a:filepath, '\v//(.*)$') + if len(l:dst_matches) > 0 + return clientpath.'/'.l:dst_matches[1] + else + " If not starting with //, return the original path + return a:filepath + endif +endfunction + +" An edit function that can recognize google3 path. +function GoogleE(filepath) + let l:cwd = getcwd(1) + echom l:cwd + let l:cur_matches = matchlist(l:cwd, '\v(.*google3).*$') + if len(l:cur_matches) > 0 + let l:dst_filepath = GetGoogle3Path(a:filepath, l:cur_matches[1]) + execute 'e '. l:dst_filepath + else + execute 'e '. a:filepath + endif +endfunction + +command -nargs=+ -complete=file GoogleE call GoogleE() + +" Function to defind a built-in (lowercase) command. +function! CommandCabbr(abbreviation, expansion) + " The replacement only happen when the command is leading by a ';' + execute 'cabbr ' . a:abbreviation . ' =getcmdpos() == 1 && getcmdtype() == ":" ? "' . a:expansion . '" : "' . a:abbreviation . '"' +endfunction +command! -nargs=+ CommandCabbr call CommandCabbr() +" Use it on itself to define a simpler abbreviation for itself. +execute 'CommandCabbr ccab CommandCabbr' +execute 'CommandCabbr e GoogleE' +