Some checks failed
		
		
	
	Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
				
			Detach Plugins / check (GitHub.vim) (push) Has been cancelled
				
			Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
				
			Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
				
			Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
				
			Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
				
			Detach Plugins / check (git.vim) (push) Has been cancelled
				
			Detach Plugins / check (iedit.vim) (push) Has been cancelled
				
			Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
				
			Detach Plugins / check (vim-chat) (push) Has been cancelled
				
			Detach Plugins / check (vim-cheat) (push) Has been cancelled
				
			Detach Plugins / check (vim-todo) (push) Has been cancelled
				
			Detach Plugins / check (xmake.vim) (push) Has been cancelled
				
			test / Linux (nvim, nightly) (push) Has been cancelled
				
			test / Linux (nvim, v0.3.8) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.4) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.1) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.052) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.629) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
				
			test / Linux (vim, nightly) (push) Has been cancelled
				
			test / Linux (vim, v8.0.0184) (push) Has been cancelled
				
			test / Linux (vim, v8.0.1453) (push) Has been cancelled
				
			test / Linux (vim, v8.1.2269) (push) Has been cancelled
				
			test / Linux (vim, v8.2.2434) (push) Has been cancelled
				
			test / Linux (vim, v8.2.3995) (push) Has been cancelled
				
			test / Windows (nvim, nightly) (push) Has been cancelled
				
			test / Windows (nvim, v0.3.8) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.4) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.1) (push) Has been cancelled
				
			test / Windows (vim, nightly) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1185) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1689) (push) Has been cancelled
				
			test / Windows (vim, v8.0.0027) (push) Has been cancelled
				
			test / Windows (vim, v8.0.1453) (push) Has been cancelled
				
			test / Windows (vim, v8.1.2269) (push) Has been cancelled
				
			test / Windows (vim, v8.2.2434) (push) Has been cancelled
				
			test / Windows (vim, v8.2.3995) (push) Has been cancelled
				
			docker / docker (push) Has been cancelled
				
			mirror / check (coding) (push) Has been cancelled
				
			mirror / check (gitee) (push) Has been cancelled
				
			mirror / check (gitlab) (push) Has been cancelled
				
			
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local utils = require "telescope.utils"
 | 
						|
 | 
						|
local Previewer = {}
 | 
						|
Previewer.__index = Previewer
 | 
						|
 | 
						|
local force_function_wrap = function(value)
 | 
						|
  if value ~= nil then
 | 
						|
    if type(value) ~= "function" then
 | 
						|
      return function()
 | 
						|
        return tostring(value)
 | 
						|
      end
 | 
						|
    else
 | 
						|
      return value
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function Previewer:new(opts)
 | 
						|
  opts = opts or {}
 | 
						|
 | 
						|
  return setmetatable({
 | 
						|
    state = nil,
 | 
						|
    _title_fn = force_function_wrap(opts.title),
 | 
						|
    _dyn_title_fn = force_function_wrap(opts.dyn_title),
 | 
						|
    _setup_func = opts.setup,
 | 
						|
    _teardown_func = opts.teardown,
 | 
						|
    _send_input = opts.send_input,
 | 
						|
    _scroll_fn = opts.scroll_fn,
 | 
						|
    preview_fn = opts.preview_fn,
 | 
						|
    _empty_bufnr = nil,
 | 
						|
  }, Previewer)
 | 
						|
end
 | 
						|
 | 
						|
function Previewer:preview(entry, status)
 | 
						|
  if not entry then
 | 
						|
    if not self._empty_bufnr then
 | 
						|
      self._empty_bufnr = vim.api.nvim_create_buf(false, true)
 | 
						|
    end
 | 
						|
 | 
						|
    if vim.api.nvim_buf_is_valid(self._empty_bufnr) then
 | 
						|
      vim.api.nvim_win_set_buf(status.preview_win, self._empty_bufnr)
 | 
						|
    end
 | 
						|
    return
 | 
						|
  end
 | 
						|
 | 
						|
  if not self.state then
 | 
						|
    if self._setup_func then
 | 
						|
      self.state = self:_setup_func(status)
 | 
						|
    else
 | 
						|
      self.state = {}
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  return self:preview_fn(entry, status)
 | 
						|
end
 | 
						|
 | 
						|
function Previewer:title(entry, dynamic)
 | 
						|
  if dynamic == true and self._dyn_title_fn ~= nil then
 | 
						|
    if entry == nil then
 | 
						|
      if self._title_fn ~= nil then
 | 
						|
        return self:_title_fn()
 | 
						|
      else
 | 
						|
        return ""
 | 
						|
      end
 | 
						|
    end
 | 
						|
    return self:_dyn_title_fn(entry)
 | 
						|
  end
 | 
						|
  if self._title_fn ~= nil then
 | 
						|
    return self:_title_fn()
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function Previewer:teardown()
 | 
						|
  if self._empty_bufnr then
 | 
						|
    utils.buf_delete(self._empty_bufnr)
 | 
						|
  end
 | 
						|
  if self._teardown_func then
 | 
						|
    self:_teardown_func()
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function Previewer:send_input(input)
 | 
						|
  if self._send_input then
 | 
						|
    self:_send_input(input)
 | 
						|
  else
 | 
						|
    vim.api.nvim_err_writeln "send_input is not defined for this previewer"
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function Previewer:scroll_fn(direction)
 | 
						|
  if self._scroll_fn then
 | 
						|
    self:_scroll_fn(direction)
 | 
						|
  else
 | 
						|
    vim.api.nvim_err_writeln "scroll_fn is not defined for this previewer"
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
return Previewer
 |