A Day in the Life

fuzzyfinder に render_max_limit が欲しい

fuzzyfinder に render_max_limit が欲しい

なぁ。MRU を多用してるんだけど、マッチしすぎると、filter/sort よりも CUI のレンダリングに時間がかかる。ので render_max_limit を作った。

let g:FuzzyFinderOptions.Base.render_max_limit = 20

とか .vimrc に書いておけば20件しかレンダリングしなくなる。もしよかったら本家のオプションにも取り込んでいただけるとうれしいです!>d:id:ns9tks

function! g:FuzzyFinderMode.Base.complete(findstart, base)
  if a:findstart
    return 0
  elseif  !self.exists_prompt(a:base) || len(self.remove_prompt(a:base)) < self.min_length
    return []
  endif
  call s:HighlightPrompt(self.prompt, self.prompt_highlight)
  " FIXME: ExpandAbbrevMap duplicates index
  let result = []
  for expanded_base in s:ExpandAbbrevMap(self.remove_prompt(a:base), self.abbrev_map)
    let result += self.on_complete(expanded_base)
  endfor
  call sort(result, 's:CompareRanks')
  if self.render_max_limit
    let result = result[0:self.render_max_limit-1]
  endif
  if empty(result)
    call s:HighlightError()
  else
    call feedkeys("\\", 'n')
  endif
  return result
endfunction
記事の一覧 >