summaryrefslogtreecommitdiff
path: root/lua/telescope
diff options
context:
space:
mode:
Diffstat (limited to 'lua/telescope')
-rw-r--r--lua/telescope/pickers.lua20
-rw-r--r--lua/telescope/previewers/buffer_previewer.lua20
-rw-r--r--lua/telescope/previewers/previewer.lua34
-rw-r--r--lua/telescope/previewers/term_previewer.lua20
-rw-r--r--lua/telescope/themes.lua3
5 files changed, 37 insertions, 60 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index c4fae21..f49920a 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -61,7 +61,8 @@ function Picker:new(opts)
local obj = setmetatable({
prompt_title = get_default(opts.prompt_title, "Prompt"),
results_title = get_default(opts.results_title, "Results"),
- preview_title = get_default(opts.preview_title, "Preview"),
+ -- either whats passed in by the user or whats defined by the previewer
+ preview_title = opts.preview_title,
prompt_prefix = get_default(opts.prompt_prefix, config.values.prompt_prefix),
selection_caret = get_default(opts.selection_caret, config.values.selection_caret),
@@ -125,6 +126,11 @@ function Picker:new(opts)
obj.all_previewers = { obj.all_previewers }
end
obj.previewer = obj.all_previewers[1]
+ if obj.preview_title == nil then
+ obj.preview_title = obj.previewer:title(nil, config.values.dynamic_preview_title)
+ else
+ obj.fix_preview_title = true
+ end
else
obj.previewer = false
end
@@ -894,10 +900,14 @@ function Picker:refresh_previewer()
self.previewer:preview(self._selection_entry, status)
if self.preview_border then
- if config.values.dynamic_preview_title == true then
- self.preview_border:change_title(self.previewer:dynamic_title(self._selection_entry))
- else
- self.preview_border:change_title(self.previewer:title())
+ if self.fix_preview_title then
+ return
+ end
+
+ local new_title = self.previewer:title(self._selection_entry, config.values.dynamic_preview_title)
+ if new_title ~= nil and new_title ~= self.preview_title then
+ self.preview_title = new_title
+ self.preview_border:change_title(new_title)
end
end
end
diff --git a/lua/telescope/previewers/buffer_previewer.lua b/lua/telescope/previewers/buffer_previewer.lua
index fad5dc9..e26fed1 100644
--- a/lua/telescope/previewers/buffer_previewer.lua
+++ b/lua/telescope/previewers/buffer_previewer.lua
@@ -277,8 +277,6 @@ previewers.new_buffer_previewer = function(opts)
local opt_setup = opts.setup
local opt_teardown = opts.teardown
- local opt_title = opts.title
- local opt_dyn_title = opts.dyn_title
local old_bufs = {}
local bufname_table = {}
@@ -316,24 +314,6 @@ previewers.new_buffer_previewer = function(opts)
end
end
- function opts.title(self)
- if opt_title then
- if type(opt_title) == "function" then
- return opt_title(self)
- else
- return opt_title
- end
- end
- return "Preview"
- end
-
- function opts.dyn_title(self, entry)
- if opt_dyn_title then
- return opt_dyn_title(self, entry)
- end
- return "Preview"
- end
-
function opts.setup(self)
local state = {}
if opt_setup then
diff --git a/lua/telescope/previewers/previewer.lua b/lua/telescope/previewers/previewer.lua
index d6eb9f1..834df2c 100644
--- a/lua/telescope/previewers/previewer.lua
+++ b/lua/telescope/previewers/previewer.lua
@@ -1,13 +1,25 @@
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 = opts.title,
- _dyn_title_fn = opts.dyn_title,
+ _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,
@@ -32,18 +44,16 @@ function Previewer:preview(entry, status)
return self:preview_fn(entry, status)
end
-function Previewer:title()
- if self._title_fn then
- return self:_title_fn()
- end
- return "Preview"
-end
-
-function Previewer:dynamic_title(entry)
- if self._title_fn then
+function Previewer:title(entry, dynamic)
+ if dynamic == true and self._dyn_title_fn ~= nil then
+ if entry == nil then
+ return nil
+ end
return self:_dyn_title_fn(entry)
end
- return "Preview"
+ if self._title_fn ~= nil then
+ return self:_title_fn()
+ end
end
function Previewer:teardown()
diff --git a/lua/telescope/previewers/term_previewer.lua b/lua/telescope/previewers/term_previewer.lua
index 375143d..1c28ae3 100644
--- a/lua/telescope/previewers/term_previewer.lua
+++ b/lua/telescope/previewers/term_previewer.lua
@@ -118,8 +118,6 @@ previewers.new_termopen_previewer = function(opts)
local opt_setup = opts.setup
local opt_teardown = opts.teardown
- local opt_title = opts.title
- local opt_dyn_title = opts.dyn_title
local old_bufs = {}
@@ -155,24 +153,6 @@ previewers.new_termopen_previewer = function(opts)
end
end
- function opts.title(self)
- if opt_title then
- if type(opt_title) == "function" then
- return opt_title(self)
- else
- return opt_title
- end
- end
- return "Preview"
- end
-
- function opts.dyn_title(self, entry)
- if opt_dyn_title then
- return opt_dyn_title(self, entry)
- end
- return "Preview"
- end
-
function opts.setup(self)
local state = {}
if opt_setup then
diff --git a/lua/telescope/themes.lua b/lua/telescope/themes.lua
index 398a842..9df0ed6 100644
--- a/lua/telescope/themes.lua
+++ b/lua/telescope/themes.lua
@@ -29,7 +29,6 @@ function themes.get_dropdown(opts)
theme = "dropdown",
results_title = false,
- preview_title = "Preview",
sorting_strategy = "ascending",
layout_strategy = "center",
@@ -111,8 +110,6 @@ function themes.get_ivy(opts)
sorting_strategy = "ascending",
- preview_title = "",
-
layout_strategy = "bottom_pane",
layout_config = {
height = 25,