Commit Graph

42 Commits

Author SHA1 Message Date
Dmitriy Kovalenko e00b41df50 chore: Revamp readme (#415)
* chore: Update readme

* chore: Update docs for - chore: Update readme
2026-04-22 23:26:13 -07:00
Dimitar Dimitrov 2201faee5f feat(neovim): Add layout.anchor config options for picker placement (#399) 2026-04-20 12:56:20 -07:00
Farrel Darian 77881a1c92 feat: optional vim-mode in prompt input (#384)
* feat: enable vim-mode

* feat: handle cursor move to move up until prefix

* feat: make it configurable

* docs: vim_mode

* docs: update to prompt_vim_mode

Co-authored-by: Dmitriy Kovalenko <dmitriy@iusevimbtw.com>

* refactor: rename vim_mode to prompt_vim_mode

Matches the maintainer's preferred naming from PR review: since this is a
neovim plugin, the flag scope is clarified by the prompt_ prefix.

* style: collapse single-statement if for stylua

---------

Co-authored-by: Dmitriy Kovalenko <dmitriy@iusevimbtw.com>
2026-04-16 20:22:30 -07:00
Dmitriy Kovalenko 7979004d77 feat: trim_whitespace option for grep (#356)
* feat: trim_whitespace optin for grep

closes https://github.com/dmtrKovalenko/fff.nvim/issues/307

* chore: Update docs for - feat: trim_whitespace optin for grep
2026-04-09 07:23:44 -07:00
aiwao 210bc9e1c7 docs: fix syntax error in the installation guide for vim.pack (#358) 2026-04-08 21:10:37 -07:00
aiwao 29585a4aa3 docs: fix installation guide for vim.pack (#352)
* doc: fix installation guide for vim.pack

* doc: fix installation guide for vim.pack
2026-04-08 14:20:01 -07:00
George 64861f8142 chore(readme) Fix install-fff.sh link to install-mcp.sh (#283)
* install-fff.sh -> install.mcp.sh

* install-fff.sh -> install.mcp.sh
2026-03-15 08:00:18 -07:00
Dmitriy Kovalenko 736c41ecd6 feat: MCP (#272)
* feat: MCP

* chore: Update docs for - feat: MCP

* feat: Perf optimizations

* chore: Update docs for - feat: Perf optimizations
2026-03-11 21:27:11 -07:00
Dmitriy Kovalenko 764e3ecf18 fix: Race when openning many sequenital dirs
closes https://github.com/dmtrKovalenko/fff.nvim/issues/269
closes https://github.com/dmtrKovalenko/fff.nvim/issues/256
2026-03-06 13:31:12 -08:00
bansheerubber 29f81a141f feat: add cursorlineopt config option for styling livegrep file preview (#262)
* feat: add cursorlineopt config option for styling livegrep file preview

* fix: better validation for junk `cursorlineopt` values
2026-02-27 21:00:30 -08:00
bansheerubber a411100fa4 chore(docs): replace flex = nil with flex = false in README.md (#263) 2026-02-27 17:57:26 -08:00
Italo Silva 0a993d7a30 feat!: Make layout flex on small screens & responsive (#255)
* feat: Add `flex` option for preview

* chore: Update docs for - feat: Add `flex` option for preview

* feat: Recalculate layout on resize

---------

Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
2026-02-25 18:36:20 -08:00
Dmitriy Kovalenko 7c2d46f1e2 chore: Upgrade every used neovim deprecated lua apis (#261)
* chore: Do not use any neovim deprecated apis

* chore: Update docs for - chore: Do not use any neovim deprecated apis
2026-02-25 17:44:13 -08:00
Dmitriy Kovalenko 0f40c66eb7 feat: cleanup hl groups resolution (#259)
* feat: cleanup hl groups resolution

* chore: Update docs for - feat: cleanup hl groups resolution
2026-02-24 09:54:24 -08:00
Federico 8f69f987a4 docs: update readme example keybindings (#253)
* docs: update readme example keybindings

* update indenntation

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-20 07:41:24 -08:00
Dmitriy Kovalenko 9a2612b1b5 feat: Grep perfromance and stability improvements (#235)
* feat: Allow many fff consumers over ffi

* parallize grep

* chore: Update docs for - parallize grep
2026-02-19 15:59:23 -08:00
Timo Clasen 9bc928db65 feat: Support initial query for live_grep and find_files (#243)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 08:31:35 -08:00
Dmitriy Kovalenko 29e13ac3d4 feat: Live grep (#231)
* feat: Live grep

* chore: Update docs for - feat: Live grep

* chore: Update docs for - chore: Update docs for - feat: Live grep

* fix formatting

* chore: Update docs for - fix formatting
2026-02-15 21:42:42 -08:00
Dmitriy Kovalenko d7bc72786d feat: Advanced path shortening strategies (#222)
* feat: Advanced path shortening strategies

Implements a lot of differnet path displaying shorting strategies. Now
you will see paths like path/.4./next_path and it is configurable

## New strategies

- middle: "some/path/./next/path", "some/path/../next/path" showing max
3 dots in the middle
- middle_number: same as middle but starting from the 4 paths skipped
  shows the number of skipped components
- end: preserves the start of the paths but truncaates not fitting end

* chore: Update docs for - feat: Advanced path shortening strategies
2026-02-07 13:08:14 -08:00
MatheusNSantiago 6455ce7c68 docs: Document file filtering with .ignore files (#220)
Add documentation explaining that FFF.nvim respects .gitignore patterns
and how to use .ignore files for filtering without modifying .gitignore.
2026-02-07 12:47:00 -08:00
Dmitriy Kovalenko ca4c32d364 fix: show_file_info option will work not and moved under debug (#210)
* fix: show_file_info option will work not and moved under debug

closes https://github.com/dmtrKovalenko/fff.nvim/issues/207

* chore: Update docs for - fix: show_file_info option will work not and moved under debug
2026-01-08 19:38:00 -08:00
Dmitriy Kovalenko abfa5d0ef7 feat: Add config param for git based filename highlighting (#202)
* feat: Add config param for git based filename highlighting

* chore: Update docs for - feat: Add config param for git based filename highlighting
2025-12-16 17:34:27 -08:00
Dmitriy Kovalenko 7fd361a369 feat: Pagination (#194)
closes https://github.com/dmtrKovalenko/fff.nvim/issues/83
2025-12-15 16:37:37 -08:00
Frank Ebel 8fe26ad4bd docs: fix installation guide for vim.pack (#197) 2025-12-15 10:13:43 -08:00
Dmitriy Kovalenko 003c05cf6d feat: Multi-select and sending to quickfix (#193) 2025-12-14 17:53:05 -08:00
Dmitriy Kovalenko 0312492570 chore: Add all highlights groups to config and improve icons highlight resolution (#190) 2025-12-14 17:15:30 -08:00
Dmitriy Kovalenko e3f788f87b feat: Resume last query + last same query match boost (#187) 2025-12-12 16:31:13 -08:00
Dmitriy Kovalenko 4a3453d3de chore(docs): Improve vim.pack example 2025-09-16 19:12:16 +02:00
Dmitriy Kovalenko 5a898066d2 feat!: Prebuilt binaries (no more need in cargo build) (#156)
closes https://github.com/dmtrKovalenko/fff.nvim/issues/15
2025-09-16 09:52:50 -07:00
Dmitriy Kovalenko a42ba4907d fix: detect all filetypes (#129)
* feat: lazy-load indexing

* refactor: split configuration and initialization

* fix(ui): nil error when opening picker

* feat: smart lazy-loading and no forced setup

* docs(readme): update

* refactor: fff.config -> fff.conf

* style(lua): run stylua

* chore: fix lazy_sync in plugin script

* docs(readme): use `vim.keymap.set` in example

* fix couple issues

* chore: fix typos

---------

Co-authored-by: Marc Jakobi <marc.jakobi@tiko.energy>
2025-08-24 09:33:50 -07:00
Marc Jakobi 13b855b172 feat: smart lazy-loading + no forced setup (#115)
* feat: lazy-load indexing

* refactor: split configuration and initialization

* fix(ui): nil error when opening picker

* feat: smart lazy-loading and no forced setup

* docs(readme): update

* refactor: fff.config -> fff.conf

* style(lua): run stylua

* chore: fix lazy_sync in plugin script

* docs(readme): use `vim.keymap.set` in example

* fix couple issues

---------

Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
2025-08-24 09:20:47 -07:00
Oskar Grunning 7c8a941001 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>
2025-08-17 08:20:39 -07:00
Oskar Grunning 38c533bcce docs: fix typos and expand configuration documentation (#85)
* docs: fix typos and expand configuration documentation

- Fix typos (adavantage → advantage, dedicaged → dedicated, compatibiility → compatibility)
- Add comprehensive configuration documentation with all available options
- Add commands section documenting all FFF commands
- Add troubleshooting section with health check and common issues

* review: apply suggestions
2025-08-10 18:16:08 +02:00
Frayzen 3ee2cb116f chore(docs): add available commands in readme (#31)
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
2025-08-03 14:42:46 +02:00
Dmitriy Kovalenko fb280b0be6 fix(docs): lazy instructions 2025-08-03 07:04:07 +02:00
Dmitriy Kovalenko 76bd9a1509 chore(docs): Remove duplicated section
Co-authored-by: Amalia Haible <florian@haible.de>
2025-08-02 23:13:44 +02:00
fvrings 3aafc930ba feat: support nixos (#5)
* feat: support nixos

* chore: add readme
2025-08-02 13:51:47 -07:00
Dinh Mai a55f507960 fix: update readme config, update picker_ui config with widht,height … (#18)
* fix: update readme config, update picker_ui config with widht,height and preview

* fix: update default picker_ui opt to main

* fix: update default keymaps
2025-08-02 12:57:59 -07:00
Edward 5302c73865 chore(docs): missing comma in installation (#2) 2025-08-02 12:55:00 -07:00
Dmitriy Kovalenko cec42488ef chore: Update README.md 2025-08-02 02:31:13 +02:00
Dmitriy Kovalenko 8358f100ec fix: CI and couple issues 2025-08-02 00:53:05 +02:00
Dmitriy Kovalenko 198ab9430a Initial commit 2025-08-02 00:30:34 +02:00