You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: flexible layout customization with dynamic positioning (#69)
* feat: implement prompt_position layout configuration
Allows users to position the input prompt at 'top' or 'bottom' of the picker window.
When prompt is at top, best matches appear at the top (closest to prompt).
When prompt is at bottom (default), best matches appear at the bottom.
- Add prompt_position config option with validation
- Adapt list rendering order based on prompt position
- Fix cursor navigation to work correctly with both layouts
- Optimize array reversal for better performance
- Extract helper function to reduce code duplication
* feat: restructure configuration with layout object
Move width/height into layout namespace for better organization.
Adds max_threads field and reorganizes config hierarchy to be
more intuitive and extensible.
BREAKING CHANGE: config.width/height moved to config.layout.width/height
* feat: implement flexible configuration deprecation system
Replace hardcoded deprecation handling with rule-based system
for easier maintenance. Each deprecation is now defined as a
simple rule with old_path, new_path, and message.
Enables easy addition of future config deprecations without
touching core migration logic.
* refactor: extract config resolution utilities to improve maintainability
Replace repetitive inline pcall functions with centralized utilities in fff.utils.
Eliminates code duplication and improves error handling consistency across
dynamic configuration resolution.
* feat: add flexible configuration deprecation system
Implement structured deprecation rules for configuration migration,
enabling smooth transition from legacy config options while maintaining
backward compatibility and clear user warnings.
* docs: update documentation for comprehensive layout positioning
Document all supported preview positions (left, right, top, bottom) and
preview_size parameter, removing outdated limitation claims and ensuring
configuration examples match current capabilities.
* docs: add comprehensive documentation for all configuration options
Document complete configuration API including dynamic functions, all preview
settings, logging, frecency, UI options, and automatic migration system.
Ensures users understand both static and responsive configuration patterns.
* style: align comments in documentation for improved readability
Standardize comment alignment across configuration examples in README.md
and doc/fff.nvim.txt to create consistent visual structure and make
configuration options easier to scan and understand.
* style: comprehensively align all comments in documentation
Standardize comment alignment across all code blocks in both README.md
and doc/fff.nvim.txt including configuration examples, method calls,
and keymap examples for consistent visual structure and readability.
* style: align comment formatting in documentation
Standardize comment alignment for better readability and consistency
across README and generated vimdoc files.
* chore: run stylua
* fix(ui): standardize layout coordinate calculations across preview positions
Resolves inconsistent window positioning that caused preview windows to be
misaligned or hidden in certain layout combinations (e.g., prompt_position='top'
with preview_position='bottom'). Standardizes the coordinate calculation logic
to ensure proper alignment and separation between windows for all four preview
positions while maintaining the original +3 border/separator spacing.
* feat: move prompt position handling to Rust layer
* chore: run cargo fmt
* fix: correct item selection when prompt position is bottom
Fixes cursor positioning calculation to properly highlight the selected
item when using bottom prompt layout. The cursor line calculation now
accounts for the inverted display order in bottom mode.
* WIP: fix sorting
* feat: Fix ordering logic
* fix configuration
* stylua
---------
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
0 commit comments