feat: Better border configuration.
Started adding `resolve` which will allow you to do some really nice stuff easily with options to get the window options from a variety of inputs. You can see how we do it in pickers.lua for borders & borderchars currently.
This commit is contained in:
@@ -1,103 +0,0 @@
|
||||
|
||||
--[[
|
||||
|
||||
Ultimately boils down to getting `height` and `width` for:
|
||||
- prompt
|
||||
- preview
|
||||
- results
|
||||
|
||||
No matter what you do, I will not make prompt have more than one line (atm)
|
||||
|
||||
Result of `resolve` should be a table with:
|
||||
|
||||
{
|
||||
preview = {
|
||||
get_width = function(self, max_columns, max_lines) end
|
||||
get_height = function(self, max_columns, max_lines) end
|
||||
},
|
||||
|
||||
result = {
|
||||
get_width = function(self, max_columns, max_lines) end
|
||||
get_height = function(self, max_columns, max_lines) end
|
||||
},
|
||||
|
||||
prompt = {
|
||||
get_width = function(self, max_columns, max_lines) return 1end
|
||||
get_height = function(self, max_columns, max_lines) end
|
||||
},
|
||||
}
|
||||
|
||||
!!NOT IMPLEMENTED YET!!
|
||||
|
||||
height =
|
||||
1. pass between 0 & 1
|
||||
This means total height as a percentage
|
||||
|
||||
2. pass a number > 1
|
||||
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)
|
||||
-> returns one of the above options
|
||||
return max.min(110, max_rows * .5)
|
||||
|
||||
if columns > 120 then
|
||||
return 110
|
||||
else
|
||||
return 0.6
|
||||
end
|
||||
|
||||
width =
|
||||
exactly the same, but switch to width
|
||||
|
||||
|
||||
{
|
||||
height = 0.5,
|
||||
width = {
|
||||
previewer = 0.25,
|
||||
results = 30,
|
||||
}
|
||||
}
|
||||
|
||||
https://github.com/nvim-lua/telescope.nvim/pull/43
|
||||
|
||||
After we get layout, we should try and make top-down sorting work.
|
||||
That's the next step to scrolling.
|
||||
|
||||
{
|
||||
vertical = {
|
||||
},
|
||||
horizontal = {
|
||||
},
|
||||
|
||||
height = ...
|
||||
width = ...
|
||||
}
|
||||
|
||||
--]]
|
||||
|
||||
local resolver = {}
|
||||
|
||||
local percentage_resolver = function(selector, percentage)
|
||||
assert(percentage <= 1)
|
||||
assert(percentage >= 0)
|
||||
|
||||
return function(...)
|
||||
return percentage * select(selector, ...)
|
||||
end
|
||||
end
|
||||
|
||||
resolver.resolve_percentage_height = function(percentage)
|
||||
return percentage_resolver(3, percentage)
|
||||
end
|
||||
|
||||
resolver.resolve_percentage_width = function(percentage)
|
||||
return percentage_resolver(2, percentage)
|
||||
end
|
||||
|
||||
return resolver
|
||||
Reference in New Issue
Block a user