From 16323575c7f0791e48d237bc95db3712572fc430 Mon Sep 17 00:00:00 2001 From: gustav-fff <286169375+gustav-fff@users.noreply.github.com> Date: Thu, 8 Oct 2026 16:55:00 -0700 Subject: [PATCH 1/2] fix: add layout.filename_position option (#910) Preview window title (file path) was hardcoded to 'left'. New option aligns it independently of layout.title_position. Default unchanged. Closes #910 --- README.md | 1 + doc/fff.nvim.txt | 1 + lua/fff/conf.lua | 2 + lua/fff/layout.lua | 13 ++-- lua/fff/picker_ui/preview_manager.lua | 9 ++- tests/picker_ui_snap.lua | 14 ++++ ..._snap.lua---filename_center---empty_bottom | 67 +++++++++++++++++++ ..._ui_snap.lua---filename_center---empty_top | 67 +++++++++++++++++++ 8 files changed, 167 insertions(+), 7 deletions(-) create mode 100644 tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_bottom create mode 100644 tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_top diff --git a/README.md b/README.md index 1b32b62ad..15d51c3cd 100644 --- a/README.md +++ b/README.md @@ -364,6 +364,7 @@ require('fff').setup({ show_scrollbar = true, show_file_count = true, -- false hides the matched/total file count next to the prompt title_position = 'left', -- 'left' | 'center' | 'right' + filename_position = 'left', -- preview title (file path) alignment: 'left' | 'center' | 'right' path_shorten_strategy = 'middle', -- 'middle' | 'middle_number' | 'end' | 'start' -- 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right' anchor = 'center', diff --git a/doc/fff.nvim.txt b/doc/fff.nvim.txt index 49d1da720..1b15db2cc 100644 --- a/doc/fff.nvim.txt +++ b/doc/fff.nvim.txt @@ -228,6 +228,7 @@ Defaults are sensible. Override only what you care about. show_scrollbar = true, show_file_count = true, -- false hides the matched/total file count next to the prompt title_position = 'left', -- 'left' | 'center' | 'right' + filename_position = 'left', -- preview title (file path) alignment: 'left' | 'center' | 'right' path_shorten_strategy = 'middle', -- 'middle' | 'middle_number' | 'end' | 'start' -- 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right' anchor = 'center', diff --git a/lua/fff/conf.lua b/lua/fff/conf.lua index 80e5bf6a6..e41ea622d 100644 --- a/lua/fff/conf.lua +++ b/lua/fff/conf.lua @@ -10,6 +10,7 @@ local M = {} --- @field show_scrollbar boolean --- @field show_file_count boolean --- @field title_position 'left'|'center'|'right' +--- @field filename_position 'left'|'center'|'right' --- @field path_shorten_strategy string --- @field show_path_first boolean --- @field border? 'single'|'double'|'rounded'|'solid'|'shadow'|'none'|table Border preset; falls back to `vim.o.winborder` when nil @@ -284,6 +285,7 @@ local function init() show_scrollbar = true, -- Show scrollbar for pagination show_file_count = true, -- Show the matched/total file count on the right of the prompt title_position = 'left', -- or 'center', 'right' + filename_position = 'left', -- preview title (file path) alignment: 'left', 'center', 'right' -- How to shorten long directory paths in the file list: -- 'middle' (default): always uses dots (a/./b, a/../b, a/.../b) -- 'middle_number' uses dots for 1-3 hidden (a/./b, a/../b, a/.../b) diff --git a/lua/fff/layout.lua b/lua/fff/layout.lua index c71f6f5f0..bd461e683 100644 --- a/lua/fff/layout.lua +++ b/lua/fff/layout.lua @@ -74,6 +74,11 @@ end M.resolve_prompt_position = resolve_prompt_position +function M.resolve_title_pos(value) + if utils.is_one_of(value, { 'left', 'center', 'right' }) then return value end + return 'left' +end + local function resolve_preview_position(config) if config and config.layout and config.layout.preview_position then local terminal_width = vim.o.columns @@ -255,8 +260,8 @@ local function build_window_configs(layout, config, prompt_position, preview_pos local border_chars, t_junctions = get_border_chars(config) local has_preview = layout.preview ~= nil local title = ' ' .. (config.title or 'FFFiles') .. ' ' - local title_pos = config.layout.title_position - if not utils.is_one_of(title_pos, { 'left', 'center', 'right' }) then title_pos = 'left' end + local title_pos = M.resolve_title_pos(config.layout.title_position) + local filename_pos = M.resolve_title_pos(config.layout.filename_position) local list_neighbour_input_top = prompt_position == 'top' local list_neighbour_input_bottom = prompt_position == 'bottom' @@ -426,7 +431,7 @@ local function build_window_configs(layout, config, prompt_position, preview_pos border = preview_border, -- Title hidden when file_info renders above — its footer already says "Preview". title = layout.file_info and '' or ' Preview ', - title_pos = 'left', + title_pos = filename_pos, zindex = 51, } end @@ -451,7 +456,7 @@ local function build_window_configs(layout, config, prompt_position, preview_pos style = 'minimal', border = fi_border, title = ' File Info ', - title_pos = 'left', + title_pos = filename_pos, -- Above the list/preview zindex so its borders win the shared rows. zindex = 53, } diff --git a/lua/fff/picker_ui/preview_manager.lua b/lua/fff/picker_ui/preview_manager.lua index 5b195eabd..7711a7bb7 100644 --- a/lua/fff/picker_ui/preview_manager.lua +++ b/lua/fff/picker_ui/preview_manager.lua @@ -2,6 +2,7 @@ local M = {} local preview = require('fff.file_picker.preview') local utils = require('fff.utils') +local layout = require('fff.layout') local picker_ui_state = require('fff.picker_ui.picker_ui_state') local canonicalize_fff_path = utils.canonicalize_fff_path @@ -14,6 +15,8 @@ function M.init(parent_module) P = parent_module end local S = picker_ui_state.state +local function filename_pos() return layout.resolve_title_pos(S.config and S.config.layout.filename_position) end + function M.close_preview_timer(timer) timer = timer or S.preview_timer if not timer then return end @@ -128,7 +131,7 @@ function M.update_preview_title(item, location) vim.api.nvim_win_set_config(S.preview_win, { title = title, - title_pos = 'left', + title_pos = filename_pos(), }) end @@ -204,7 +207,7 @@ function M.update_preview() preview.update_file_info_buffer(item, S.file_info_buf, S.cursor, S.preview_win) if S.file_info_win and vim.api.nvim_win_is_valid(S.file_info_win) then local rel = item.relative_path or item.path or '' - pcall(vim.api.nvim_win_set_config, S.file_info_win, { title = ' ' .. rel .. ' ', title_pos = 'left' }) + pcall(vim.api.nvim_win_set_config, S.file_info_win, { title = ' ' .. rel .. ' ', title_pos = filename_pos() }) end end @@ -218,7 +221,7 @@ function M.clear_preview() vim.api.nvim_win_set_config(S.preview_win, { title = ' Preview ', - title_pos = 'left', + title_pos = filename_pos(), }) if S.file_info_buf then diff --git a/tests/picker_ui_snap.lua b/tests/picker_ui_snap.lua index 4bc3f8600..1d6c3af82 100644 --- a/tests/picker_ui_snap.lua +++ b/tests/picker_ui_snap.lua @@ -216,6 +216,20 @@ for _, prompt in ipairs(PROMPT_POSITIONS) do end end +T['filename_center'] = MiniTest.new_set({ + hooks = { + pre_case = function() setup({ cols = 140, rows = 32 }) end, + post_case = teardown, + }, +}) + +for _, prompt in ipairs(PROMPT_POSITIONS) do + T['filename_center']['empty_' .. prompt] = function() + open_picker(prompt, nil, { filename_position = 'center' }) + assert_snapshot_match() + end +end + T['combo'] = MiniTest.new_set({ hooks = { pre_case = function() setup({ cols = 140, rows = 32 }) end, diff --git a/tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_bottom b/tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_bottom new file mode 100644 index 000000000..6d5e37f88 --- /dev/null +++ b/tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_bottom @@ -0,0 +1,67 @@ +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01| +02|~ +03|~ +04|~ ┌ FFFiles ────────────────────────────────────────────┬────────────────────── README.md ───────────────────────┐ +05|~ │ store.rs src │# Fixture │ +06|~ │ state.rs src │ │ +07|~ │ runner.rs src │ │ +08|~ │ parser.rs src │ │ +09|~ │ main_utils.rs src │ │ +10|~ │ main_runner.rs src │ │ +11|~ │ main_loop.rs src │ │ +12|~ │ main_helper.rs src │ │ +13|~ │ main.rs src │ │ +14|~ │ lib.rs src │ │ +15|~ │ error.rs src │ │ +16|~ │ config.rs src │ │ +17|~ │ cli.rs src │ │ +18|~ │ api.rs src │ │ +19|~ │ reference.md docs │ │ +20|~ │ license.md docs │ │ +21|~ │ intro.md docs │ │ +22|~ │ guide.md docs │ │ +23|~ │ contributing.md docs │ │ +24|~ │ changelog.md docs │ │ +25|~ │ README.md │ │ +26|~ ├─────────────────────────────────────────────────────┤ │ +27|~ │> 32 │ │ +28|~ └─────────────────────────────────────────────────────┴────────────────────────────────────────────────────────┘ +29|~ +30|~ +31|[No Name] 0,1 All +32|-- INSERT -- 1,3 All + +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01|00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +02|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +03|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +04|11111111111111123333333332222222222222222222222222222222222222222222222222222222222222222222333333333332222222222222222222222221111111111111 +05|11111111111111124422222222255522222222222222222222222222222222222222226666666662222222222222222222222222222222222222222222222221111111111111 +06|11111111111111124422222222255522222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +07|11111111111111124422222222225552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +08|11111111111111124422222222225552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +09|11111111111111124422222222222222555222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +10|11111111111111124422222222222222255522222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +11|11111111111111124422222222222225552222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +12|11111111111111124422222222222222255522222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +13|11111111111111124422222222555222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +14|11111111111111124422222225552222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +15|11111111111111124422222222255522222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +16|11111111111111124422222222225552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +17|11111111111111124422222225552222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +18|11111111111111124422222225552222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +19|11111111111111124422222222222225555222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +20|11111111111111124422222222222555522222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +21|11111111111111124422222222255552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +22|11111111111111124422222222255552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +23|11111111111111124422222222222222225555222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +24|11111111111111124422222222222225555222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +25|11111111111111127788888888888888888888888888888888888888888888888888824444444444444444444444444444444444444444444444444444444421111111111111 +26|11111111111111122222222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +27|11111111111111122222222222222222222222222222222222222222222222222442224444444444444444444444444444444444444444444444444444444421111111111111 +28|11111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221111111111111 +29|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +30|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +31|99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 +32|::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_top b/tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_top new file mode 100644 index 000000000..cde8105aa --- /dev/null +++ b/tests/screenshots/tests-picker_ui_snap.lua---filename_center---empty_top @@ -0,0 +1,67 @@ +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01| +02|~ +03|~ +04|~ ┌ FFFiles ────────────────────────────────────────────┬────────────────────── README.md ───────────────────────┐ +05|~ │> 32 │# Fixture │ +06|~ ├─────────────────────────────────────────────────────┤ │ +07|~ │ README.md │ │ +08|~ │ changelog.md docs │ │ +09|~ │ contributing.md docs │ │ +10|~ │ guide.md docs │ │ +11|~ │ intro.md docs │ │ +12|~ │ license.md docs │ │ +13|~ │ reference.md docs │ │ +14|~ │ api.rs src │ │ +15|~ │ cli.rs src │ │ +16|~ │ config.rs src │ │ +17|~ │ error.rs src │ │ +18|~ │ lib.rs src │ │ +19|~ │ main.rs src │ │ +20|~ │ main_helper.rs src │ │ +21|~ │ main_loop.rs src │ │ +22|~ │ main_runner.rs src │ │ +23|~ │ main_utils.rs src │ │ +24|~ │ parser.rs src │ │ +25|~ │ runner.rs src │ │ +26|~ │ state.rs src │ │ +27|~ │ store.rs src │ │ +28|~ └─────────────────────────────────────────────────────┴────────────────────────────────────────────────────────┘ +29|~ +30|~ +31|[No Name] 0,1 All +32|-- INSERT -- 1,3 All + +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01|00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +02|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +03|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +04|11111111111111123333333332222222222222222222222222222222222222222222222222222222222222222222333333333332222222222222222222222221111111111111 +05|11111111111111122222222222222222222222222222222222222222222222222442225555555552222222222222222222222222222222222222222222222221111111111111 +06|11111111111111122222222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +07|11111111111111126677777777777777777777777777777777777777777777777777724444444444444444444444444444444444444444444444444444444421111111111111 +08|11111111111111124422222222222228888222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +09|11111111111111124422222222222222228888222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +10|11111111111111124422222222288882222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +11|11111111111111124422222222288882222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +12|11111111111111124422222222222888822222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +13|11111111111111124422222222222228888222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +14|11111111111111124422222228882222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +15|11111111111111124422222228882222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +16|11111111111111124422222222228882222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +17|11111111111111124422222222288822222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +18|11111111111111124422222228882222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +19|11111111111111124422222222888222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +20|11111111111111124422222222222222288822222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +21|11111111111111124422222222222228882222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +22|11111111111111124422222222222222288822222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +23|11111111111111124422222222222222888222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +24|11111111111111124422222222228882222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +25|11111111111111124422222222228882222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +26|11111111111111124422222222288822222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +27|11111111111111124422222222288822222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +28|11111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221111111111111 +29|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +30|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +31|99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 +32|::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; From 76648e678e2eba5830907decf6a4107bafa85134 Mon Sep 17 00:00:00 2001 From: gustav-fff <286169375+gustav-fff@users.noreply.github.com> Date: Sat, 10 Oct 2026 09:37:45 -0700 Subject: [PATCH 2/2] test: snapshot filename_position='right' on non-default selected file Moves cursor to docs/changelog.md so the preview title is re-set via update_preview_title, covering both prompt positions. --- tests/picker_ui_snap.lua | 17 +++++ ...filename_right---cursor_second_item_bottom | 67 +++++++++++++++++++ ...---filename_right---cursor_second_item_top | 67 +++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_bottom create mode 100644 tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_top diff --git a/tests/picker_ui_snap.lua b/tests/picker_ui_snap.lua index 1d6c3af82..acab4bec3 100644 --- a/tests/picker_ui_snap.lua +++ b/tests/picker_ui_snap.lua @@ -230,6 +230,23 @@ for _, prompt in ipairs(PROMPT_POSITIONS) do end end +-- Non-default position on a non-default file: title is re-set on cursor move. +T['filename_right'] = MiniTest.new_set({ + hooks = { + pre_case = function() setup({ cols = 140, rows = 32 }) end, + post_case = teardown, + }, +}) + +for _, prompt in ipairs(PROMPT_POSITIONS) do + T['filename_right']['cursor_second_item_' .. prompt] = function() + open_picker(prompt, nil, { filename_position = 'right' }) + child.type_keys(prompt == 'bottom' and '' or '') + vim.loop.sleep(200) + assert_snapshot_match() + end +end + T['combo'] = MiniTest.new_set({ hooks = { pre_case = function() setup({ cols = 140, rows = 32 }) end, diff --git a/tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_bottom b/tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_bottom new file mode 100644 index 000000000..f42b87c08 --- /dev/null +++ b/tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_bottom @@ -0,0 +1,67 @@ +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01| +02|~ +03|~ +04|~ ┌ FFFiles ────────────────────────────────────────────┬───────────────────────────────────── docs/changelog.md ┐ +05|~ │ store.rs src │# Changelog │ +06|~ │ state.rs src │ │ +07|~ │ runner.rs src │ │ +08|~ │ parser.rs src │ │ +09|~ │ main_utils.rs src │ │ +10|~ │ main_runner.rs src │ │ +11|~ │ main_loop.rs src │ │ +12|~ │ main_helper.rs src │ │ +13|~ │ main.rs src │ │ +14|~ │ lib.rs src │ │ +15|~ │ error.rs src │ │ +16|~ │ config.rs src │ │ +17|~ │ cli.rs src │ │ +18|~ │ api.rs src │ │ +19|~ │ reference.md docs │ │ +20|~ │ license.md docs │ │ +21|~ │ intro.md docs │ │ +22|~ │ guide.md docs │ │ +23|~ │ contributing.md docs │ │ +24|~ │ changelog.md docs │ │ +25|~ │ README.md │ │ +26|~ ├─────────────────────────────────────────────────────┤ │ +27|~ │> 32 │ │ +28|~ └─────────────────────────────────────────────────────┴────────────────────────────────────────────────────────┘ +29|~ +30|~ +31|[No Name] 0,1 All +32|-- INSERT -- 1,3 All + +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01|00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +02|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +03|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +04|11111111111111123333333332222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333321111111111111 +05|11111111111111124422222222255522222222222222222222222222222222222222226666666666622222222222222222222222222222222222222222222221111111111111 +06|11111111111111124422222222255522222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +07|11111111111111124422222222225552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +08|11111111111111124422222222225552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +09|11111111111111124422222222222222555222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +10|11111111111111124422222222222222255522222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +11|11111111111111124422222222222225552222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +12|11111111111111124422222222222222255522222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +13|11111111111111124422222222555222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +14|11111111111111124422222225552222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +15|11111111111111124422222222255522222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +16|11111111111111124422222222225552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +17|11111111111111124422222225552222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +18|11111111111111124422222225552222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +19|11111111111111124422222222222225555222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +20|11111111111111124422222222222555522222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +21|11111111111111124422222222255552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +22|11111111111111124422222222255552222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +23|11111111111111124422222222222222225555222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +24|11111111111111127788888888888889999888888888888888888888888888888888824444444444444444444444444444444444444444444444444444444421111111111111 +25|11111111111111124422222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +26|11111111111111122222222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +27|11111111111111122222222222222222222222222222222222222222222222222442224444444444444444444444444444444444444444444444444444444421111111111111 +28|11111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221111111111111 +29|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +30|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +31|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +32|;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< diff --git a/tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_top b/tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_top new file mode 100644 index 000000000..9e1a9bc13 --- /dev/null +++ b/tests/screenshots/tests-picker_ui_snap.lua---filename_right---cursor_second_item_top @@ -0,0 +1,67 @@ +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01| +02|~ +03|~ +04|~ ┌ FFFiles ────────────────────────────────────────────┬───────────────────────────────────── docs/changelog.md ┐ +05|~ │> 32 │# Changelog │ +06|~ ├─────────────────────────────────────────────────────┤ │ +07|~ │ README.md │ │ +08|~ │ changelog.md docs │ │ +09|~ │ contributing.md docs │ │ +10|~ │ guide.md docs │ │ +11|~ │ intro.md docs │ │ +12|~ │ license.md docs │ │ +13|~ │ reference.md docs │ │ +14|~ │ api.rs src │ │ +15|~ │ cli.rs src │ │ +16|~ │ config.rs src │ │ +17|~ │ error.rs src │ │ +18|~ │ lib.rs src │ │ +19|~ │ main.rs src │ │ +20|~ │ main_helper.rs src │ │ +21|~ │ main_loop.rs src │ │ +22|~ │ main_runner.rs src │ │ +23|~ │ main_utils.rs src │ │ +24|~ │ parser.rs src │ │ +25|~ │ runner.rs src │ │ +26|~ │ state.rs src │ │ +27|~ │ store.rs src │ │ +28|~ └─────────────────────────────────────────────────────┴────────────────────────────────────────────────────────┘ +29|~ +30|~ +31|[No Name] 0,1 All +32|-- INSERT -- 1,3 All + +--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +01|00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +02|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +03|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +04|11111111111111123333333332222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333321111111111111 +05|11111111111111122222222222222222222222222222222222222222222222222442225555555555522222222222222222222222222222222222222222222221111111111111 +06|11111111111111122222222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +07|11111111111111124422222222222222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +08|11111111111111126677777777777778888777777777777777777777777777777777724444444444444444444444444444444444444444444444444444444421111111111111 +09|11111111111111124422222222222222229999222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +10|11111111111111124422222222299992222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +11|11111111111111124422222222299992222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +12|11111111111111124422222222222999922222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +13|11111111111111124422222222222229999222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +14|11111111111111124422222229992222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +15|11111111111111124422222229992222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +16|11111111111111124422222222229992222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +17|11111111111111124422222222299922222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +18|11111111111111124422222229992222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +19|11111111111111124422222222999222222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +20|11111111111111124422222222222222299922222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +21|11111111111111124422222222222229992222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +22|11111111111111124422222222222222299922222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +23|11111111111111124422222222222222999222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +24|11111111111111124422222222229992222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +25|11111111111111124422222222229992222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +26|11111111111111124422222222299922222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +27|11111111111111124422222222299922222222222222222222222222222222222222224444444444444444444444444444444444444444444444444444444421111111111111 +28|11111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221111111111111 +29|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +30|11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +31|:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +32|;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<