mirror of
https://github.com/amix/vimrc
synced 2025-02-28 14:12:51 +08:00
auto build command copy to clipboard
This commit is contained in:
parent
6b01a301dd
commit
5ada6ec042
@ -89,10 +89,6 @@ function GetGoogle3Path(filepath, clientpath)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function PathNameFilterHelper(key, val)
|
|
||||||
let l:idx = strridx()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function GoogleECompletion(ArgLead, CmdLine, CursorPos)
|
function GoogleECompletion(ArgLead, CmdLine, CursorPos)
|
||||||
let l:citc = GetCitCPath()
|
let l:citc = GetCitCPath()
|
||||||
let l:filepath = GetGoogle3Path(a:ArgLead, l:citc)
|
let l:filepath = GetGoogle3Path(a:ArgLead, l:citc)
|
||||||
@ -138,9 +134,46 @@ execute 'CommandCabbr e GoogleE'
|
|||||||
" Play the macro in register q.
|
" Play the macro in register q.
|
||||||
nnoremap <Leader>. @q
|
nnoremap <Leader>. @q
|
||||||
|
|
||||||
" FromProto
|
|
||||||
let @f = "ywidata.\<Esc>wwi = proto.\<Esc>pa()\<Esc>jb"
|
" Class Access Operator toggle
|
||||||
" ToProto
|
" Only work if current char under the cursor is either . or ->
|
||||||
let @t = "ywiif (proto->\<Esc>wwi() != data.\<Esc>pa) {\<Enter>\<Enter>}\<Esc>kAproto->\<Esc>pbdwaset_\<Esc>pa(data.\<Esc>pa);\<Esc>jxj"
|
function ClassAccessOperatorToggle()
|
||||||
|
" Col number starts at 1 while string index starts at 0.
|
||||||
|
let cur_char = matchstr(getline('.'), '\%' . col('.') . 'c.')
|
||||||
|
" == does not match case, but it is sufficient here. ==# match cases. For more :help expr-<
|
||||||
|
" To do replace . with -> or replace -> with .
|
||||||
|
let line = line(".")
|
||||||
|
if cur_char == '.'
|
||||||
|
execute line . "," . line . "s/\\./->/"
|
||||||
|
endif
|
||||||
|
if cur_char == '-' || cur_char == '>'
|
||||||
|
execute line . "," . line . "s/->/./"
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command ClassAccessOperatorToggle call ClassAccessOperatorToggle()
|
||||||
|
nnoremap ,p :ClassAccessOperatorToggle<CR>
|
||||||
|
|
||||||
|
" Copy the buildable command of the current file to clipboard.
|
||||||
|
" If the current file is a/b/c/d/k.h
|
||||||
|
" Copy 'blaze build a/b/c/d:k' to clipboard.
|
||||||
|
function! GetCurrentFileBuildCmd()
|
||||||
|
" citc:filepath
|
||||||
|
let path = GetSmartFilePath()
|
||||||
|
let subs = split(path, ':')
|
||||||
|
|
||||||
|
let file = expand('%:p:t')
|
||||||
|
" Need to escapte the dot.
|
||||||
|
let file_subs = split(file, '\.')
|
||||||
|
if len(subs) > 1 && len(file_subs) > 0
|
||||||
|
let output = 'blaze build ' . subs[1] . ':' . file_subs[0]
|
||||||
|
" Copy to secondary clipboard, ctrl+c/v
|
||||||
|
echom l:output
|
||||||
|
let @+ = l:output
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,32 +141,6 @@ let g:lightline = {
|
|||||||
\ 'subseparator': { 'left': ' ', 'right': ' ' }
|
\ 'subseparator': { 'left': ' ', 'right': ' ' }
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
function! GetSmartFilePath()
|
|
||||||
let path = expand('%:p:h')
|
|
||||||
" If in google3 path, display the client name and the absolute path
|
|
||||||
if matchstr(path, 'google3') == 'google3'
|
|
||||||
let output = ''
|
|
||||||
let subs = split(path, '/')
|
|
||||||
let add_to_output = 0
|
|
||||||
let prev_s = ''
|
|
||||||
for s in subs
|
|
||||||
if add_to_output == 1
|
|
||||||
let output .= '/'
|
|
||||||
let output .= s
|
|
||||||
endif
|
|
||||||
if s == 'google3'
|
|
||||||
let output .= prev_s
|
|
||||||
let output .= ':'
|
|
||||||
let add_to_output = 1
|
|
||||||
endif
|
|
||||||
let prev_s = s
|
|
||||||
endfor
|
|
||||||
return output
|
|
||||||
else
|
|
||||||
return path
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" => Vimroom
|
" => Vimroom
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
Loading…
Reference in New Issue
Block a user