From 066bda8ea44fd981bc15b86730cc36ebc92d9788 Mon Sep 17 00:00:00 2001 From: Simon Hauser Date: Wed, 24 May 2023 12:27:19 +0200 Subject: [PATCH] feat!: allow full height, width by resolving 1 as a percentage rather than absolute val (#2525) this is technically a breaking change but i doubt anyone uses height/width 1 (absolute value). It makes more sense to treat 1 as 100% --- doc/telescope.txt | 12 ++++++------ lua/telescope/config/resolve.lua | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/doc/telescope.txt b/doc/telescope.txt index 8ebe2cd..f6ff20e 100644 --- a/doc/telescope.txt +++ b/doc/telescope.txt @@ -2160,14 +2160,14 @@ Provides "resolver functions" to allow more customisable inputs for options. resolver.resolve_height() *telescope.resolve.resolve_height()* Converts input to a function that returns the height. The input must take one of five forms: - 1. 0 <= number < 1 + 1. 0 <= number <= 1 This means total height as a percentage. - 2. 1 <= number + 2. 1 < number This means total height as a fixed number. 3. function Must have signature: function(self, max_columns, max_lines): number 4. table of the form: { val, max = ..., min = ... } - val has to be in the first form 0 <= val < 1 and only one is given, + val has to be in the first form 0 <= val <= 1 and only one is given, `min` or `max` as fixed number 5. table of the form: {padding = `foo`} where `foo` has one of the previous three forms. @@ -2183,14 +2183,14 @@ resolver.resolve_height() *telescope.resolve.resolve_height()* resolver.resolve_width() *telescope.resolve.resolve_width()* Converts input to a function that returns the width. The input must take one of five forms: - 1. 0 <= number < 1 + 1. 0 <= number <= 1 This means total width as a percentage. - 2. 1 <= number + 2. 1 < number This means total width as a fixed number. 3. function Must have signature: function(self, max_columns, max_lines): number 4. table of the form: { val, max = ..., min = ... } - val has to be in the first form 0 <= val < 1 and only one is given, + val has to be in the first form 0 <= val <= 1 and only one is given, `min` or `max` as fixed number 5. table of the form: {padding = `foo`} where `foo` has one of the previous three forms. diff --git a/lua/telescope/config/resolve.lua b/lua/telescope/config/resolve.lua index f677949..f0333aa 100644 --- a/lua/telescope/config/resolve.lua +++ b/lua/telescope/config/resolve.lua @@ -38,10 +38,10 @@ Result of `resolve` should be a table with: !!NOT IMPLEMENTED YET!! height = - 1. 0 <= number < 1 + 1. 0 <= number <= 1 This means total height as a percentage - 2. 1 <= number + 2. 1 < number This means total height as a fixed number 3. function(picker, columns, lines) @@ -109,7 +109,7 @@ end -- Percentages _resolve_map[function(val) - return type(val) == "number" and val >= 0 and val < 1 + return type(val) == "number" and val >= 0 and val <= 1 end] = function(selector, val) return function(...) local selected = select(selector, ...) @@ -119,7 +119,7 @@ end -- Numbers _resolve_map[function(val) - return type(val) == "number" and val >= 1 + return type(val) == "number" and val > 1 end] = function(selector, val) return function(...) local selected = select(selector, ...) @@ -139,7 +139,7 @@ end] = function(_, val) end _resolve_map[function(val) - return type(val) == "table" and val["max"] ~= nil and val[1] ~= nil and val[1] >= 0 and val[1] < 1 + return type(val) == "table" and val["max"] ~= nil and val[1] ~= nil and val[1] >= 0 and val[1] <= 1 end] = function( selector, val @@ -151,7 +151,7 @@ end] = function( end _resolve_map[function(val) - return type(val) == "table" and val["min"] ~= nil and val[1] ~= nil and val[1] >= 0 and val[1] < 1 + return type(val) == "table" and val["min"] ~= nil and val[1] ~= nil and val[1] >= 0 and val[1] <= 1 end] = function( selector, val @@ -184,15 +184,15 @@ end --- Converts input to a function that returns the height. --- The input must take one of five forms: ---- 1. 0 <= number < 1
+--- 1. 0 <= number <= 1
--- This means total height as a percentage. ---- 2. 1 <= number
+--- 2. 1 < number
--- This means total height as a fixed number. --- 3. function
--- Must have signature: --- function(self, max_columns, max_lines): number --- 4. table of the form: { val, max = ..., min = ... }
---- val has to be in the first form 0 <= val < 1 and only one is given, +--- val has to be in the first form 0 <= val <= 1 and only one is given, --- `min` or `max` as fixed number --- 5. table of the form: {padding = `foo`}
--- where `foo` has one of the previous three forms.
@@ -213,15 +213,15 @@ end --- Converts input to a function that returns the width. --- The input must take one of five forms: ---- 1. 0 <= number < 1
+--- 1. 0 <= number <= 1
--- This means total width as a percentage. ---- 2. 1 <= number
+--- 2. 1 < number
--- This means total width as a fixed number. --- 3. function
--- Must have signature: --- function(self, max_columns, max_lines): number --- 4. table of the form: { val, max = ..., min = ... }
---- val has to be in the first form 0 <= val < 1 and only one is given, +--- val has to be in the first form 0 <= val <= 1 and only one is given, --- `min` or `max` as fixed number --- 5. table of the form: {padding = `foo`}
--- where `foo` has one of the previous three forms.