summary refs log tree commit diff
path: root/.vim/autoload/fuzz.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/autoload/fuzz.vim')
-rw-r--r--.vim/autoload/fuzz.vim140
1 files changed, 0 insertions, 140 deletions
diff --git a/.vim/autoload/fuzz.vim b/.vim/autoload/fuzz.vim
deleted file mode 100644
index 39d02f1..0000000
--- a/.vim/autoload/fuzz.vim
+++ /dev/null
@@ -1,140 +0,0 @@
-function! s:prompt(str)
-  return a:str . g:fuzz_prompt . ' '
-endfunction
-
-function! s:fuzz(name, opts)
-  " call skim#run(skim#wrap(a:name, a:opts, 0))
-  call fzf#run(fzf#wrap(a:name, a:opts, 0))
-endfunction
-
-function! s:strip(str)
-  return substitute(a:str, '^\s*\|\s*$', '', 'g')
-endfunction
-
-function! s:open(cmd, target)
-  if stridx('edit', a:cmd) == 0 && fnamemodify(a:target, ':p') ==# expand('%:p')
-    return
-  endif
-  execute a:cmd fnameescape(a:target)
-endfunction
-
-
-" rg {{{
-function s:map_rg_output(line)
-  let parts = split(a:line, ':')
-  return {'filename': &acd ? fnamemodify(parts[0], ':p') : parts[0], 'lnum': parts[1], 'text': join(parts[2:], ':')}
-endfunction
-
-function s:rg_handler(lines)
-  if len(a:lines) < 1
-    return
-  endif
-  let first = map(filter(a:lines, 'len(v:val)'), 's:map_rg_output(v:val)')[0]
-  call s:open('edit', first.filename)
-  execute first.lnum
-  normal! zz
-endfunction
-
-function s:rg(prompt, ...)
-  if !executable('rg')
-    echoerr 'rg not found'
-    return
-  endif
-  if len(a:000) < 1 || len(a:000[0]) < 1
-    echoerr 'no arguments'
-    return
-  endif
-
-  call s:fuzz(!empty(a:prompt) ? tolower(a:prompt) : 'rg', {
-  \ 'source': 'rg --line-number --no-heading --color=always --smart-case '.join(a:000[0], ' '),
-  \ 'sink*': function('s:rg_handler'),
-  \ 'options': ['--prompt', s:prompt(!empty(a:prompt) ? a:prompt : 'Rg'),
-  \             '--ansi', '--multi']
-  \ })
-endfunction
-
-function! fuzz#rg(args) abort
-  call s:rg('', a:args)
-endfunction
-" }}}
-
-" files {{{
-function! fuzz#files() abort
-  call s:fuzz('files', {
-  \ 'options': ['--prompt', s:prompt('Fs')]
-  \ })
-endfunction
-" }}}
-
-" buffers {{{
-function! s:buffers_list()
-  function! s:buflisted()
-    return filter(range(1, bufnr('$')), 'buflisted(v:val) && getbufvar(v:val, "&filetype") != "qf"')
-  endfunction
-
-  function! s:format_buffer(b)
-    let name = bufname(a:b)
-    let name = empty(name) ? '[No Name]' : fnamemodify(name, ":p:~:.")
-    let flag = a:b == bufnr('')  ? '%' :
-            \ (a:b == bufnr('#') ? '#' : ' ')
-    let modified = getbufvar(a:b, '&modified') ? ' [+]' : ''
-    let readonly = getbufvar(a:b, '&modifiable') ? '' : ' [RO]'
-    let extra = join(filter([modified, readonly], '!empty(v:val)'), '')
-    return s:strip(printf("[%s] %s\t%s\t%s", a:b, flag, name, extra))
-  endfunction
-
-  return map(sort(s:buflisted()), 's:format_buffer(v:val)')
-endfunction
-
-function! s:buffers_handler(lines)
-  if len(a:lines) < 1
-    return
-  endif
-  let b = matchstr(a:lines[0], '\[\zs[0-9]*\ze\]')
-  execute 'buffer' b
-endfunction
-
-function! fuzz#buffers() abort
-  call s:fuzz('buffers', {
-  \ 'source': s:buffers_list(),
-  \ 'sink*': function('s:buffers_handler'),
-  \ 'options': ['--prompt', s:prompt('Buf')]
-  \ })
-endfunction
-" }}}
-
-" commands {{{
-function! s:command_handler(lines)
-  if len(a:lines) < 1
-    return
-  endif
-  call feedkeys(':'.a:lines[0])
-endfunction
-
-function! fuzz#commands() abort
-  call s:fuzz('commands', {
-  \ 'source': sort(getcompletion('', 'command')),
-  \ 'sink*': function('s:command_handler'),
-  \ 'options': ['--prompt', s:prompt('Cmd')]
-  \ })
-endfunction
-" }}}
-
-function! fuzz#cmdoptions(...) abort
-  let opts = sort(['files', 'buffers', 'commands', 'rg'])
-  return join(opts, "\n")
-endfunction
-
-function! fuzz#exec(cmd, ...) abort
-  if a:cmd == 'files'
-    call fuzz#files()
-  elseif a:cmd == 'buffers'
-    call fuzz#buffers()
-  elseif a:cmd == 'commands'
-    call fuzz#commands()
-  elseif a:cmd == 'rg'
-    call fuzz#rg(a:000)
-  else
-    echoerr 'Unknown command ' . a:cmd
-  endif
-endfunction