summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2020-10-27 23:33:49 -0400
committerTJ DeVries <devries.timothyj@gmail.com>2020-10-27 23:33:49 -0400
commita3afb3561466045488ee8acbffa6db7ec92c5dc7 (patch)
tree5e81832ea4881b0f8cd6d19a247569389e8567df /lua
parentb76babb225c7e7de53f64e9ba4b5cf8863ae0416 (diff)
feat: Added some docs & validation
Diffstat (limited to 'lua')
-rw-r--r--lua/telescope/config/resolve.lua18
-rw-r--r--lua/telescope/pickers/layout_strategies.lua21
2 files changed, 29 insertions, 10 deletions
diff --git a/lua/telescope/config/resolve.lua b/lua/telescope/config/resolve.lua
index 7c7ee6d..464bffb 100644
--- a/lua/telescope/config/resolve.lua
+++ b/lua/telescope/config/resolve.lua
@@ -32,19 +32,13 @@ Result of `resolve` should be a table with:
!!NOT IMPLEMENTED YET!!
height =
- 1. pass between 0 & 1
+ 1. 0 <= number < 1
This means total height as a percentage
- 2. pass a number > 1
+ 2. 1 <= number
This means total height as a fixed number
- 3. {
- previewer = x,
- results = x,
- prompt = x,
- }, this means I do my best guess I can for these, given your options
-
- 4. function(max_rows)
+ 3. function(picker, columns, lines)
-> returns one of the above options
return max.min(110, max_rows * .5)
@@ -54,6 +48,12 @@ height =
return 0.6
end
+ 3. {
+ previewer = x,
+ results = x,
+ prompt = x,
+ }, this means I do my best guess I can for these, given your options
+
width =
exactly the same, but switch to width
diff --git a/lua/telescope/pickers/layout_strategies.lua b/lua/telescope/pickers/layout_strategies.lua
index 390c748..adf22ca 100644
--- a/lua/telescope/pickers/layout_strategies.lua
+++ b/lua/telescope/pickers/layout_strategies.lua
@@ -33,6 +33,21 @@ local is_borderless = function(opts)
return opts.window.border == false
end
+
+local function validate_layout_config(options, values)
+ for k, _ in pairs(options) do
+ if not values[k] then
+ error(string.format(
+ "Unsupported layout_config key: %s\n%s",
+ k,
+ vim.inspect(values)
+ ))
+ end
+ end
+
+ return options
+end
+
local layout_strategies = {}
--[[
@@ -46,7 +61,11 @@ local layout_strategies = {}
+-----------------+---------------------+
--]]
layout_strategies.horizontal = function(self, max_columns, max_lines)
- local layout_config = self.layout_config or {}
+ local layout_config = validate_layout_config(self.layout_config or {}, {
+ width_padding = "How many cells to pad the width",
+ height_padding = "How many cells to pad the height",
+ preview_width = "(Resolvable): Determine preview width",
+ })
local initial_options = self:_get_initial_window_options()
local preview = initial_options.preview