summaryrefslogtreecommitdiff
path: root/src/core.go
AgeCommit message (Collapse)Author
2025-10-09Introduce 'raw' modeJunegunn Choi
2025-09-29refactor: use maps.Copy and maps.Clone (#4518)mickychang9
Signed-off-by: mickychang9 <mickychang9@outlook.com>
2025-06-27Reset full-background property after a new lineJunegunn Choi
2025-06-26Fix highlight offsets of multi-line entriesJunegunn Choi
Fix regression from 4811e52a
2025-06-25Support full-line background color in the list sectionJunegunn Choi
Close #4432
2025-06-24with-nth: Do not trim trailing whitespaces with background colorsJunegunn Choi
Example: echo -en ' \e[48;5;232mhello\e[48;5;147m ' | fzf --ansi --with-nth 1
2025-06-10Add footerJunegunn Choi
Options: --footer=STR String to print as footer --footer-border[=STYLE] Draw border around the footer section [rounded|sharp|bold|block|thinblock|double|horizontal|vertical| top|bottom|left|right|line|none] (default: line) --footer-label=LABEL Label to print on the footer border --footer-label-pos=COL Position of the footer label [POSITIVE_INTEGER: columns from left| NEGATIVE_INTEGER: columns from right][:bottom] (default: 0 or center) The default border type for footer is 'line', which draws a single separator between the footer and the list. It changes its position depending on `--layout`, so you don't have to manually switch between 'top' and 'bottom' The 'line' style is now supported by other border types as well. `--list-border` is the only exception.
2025-05-30--no-color: Keep ANSI attributes in the listJunegunn Choi
Example: echo -e "\x1b[33;3mfoo \x1b[34;4mbar\x1b[m baz" | fzf --ansi --no-color
2025-04-25Reset coordinator delay on 'reload'Junegunn Choi
Fix #4364
2025-04-22Revert "Disable tmux popup when already running inside one (#4351)"Junegunn Choi
This reverts commit af8fe918d863b18160390a79cbf957ee28dead56. Fix #4360 Fix #4359
2025-04-18Disable tmux popup when already running inside one (#4351)Pierre Guinoiseau
2025-02-26Trim trailing whitespaces after processing ANSI sequencesJunegunn Choi
Close #4282
2025-02-26Make --accept-nth compatible with --select-1Junegunn Choi
Fix #4287
2025-02-23Add support for {n} in --with-nth and --accept-nth templatesJunegunn Choi
Close #4275
2025-02-12Make --accept-nth and --with-nth support templatesJunegunn Choi
2025-02-09Add 'exclude' action for excluding current/selected items from the result ↵Junegunn Choi
(#4231) Close #4185
2025-02-09Add --accept-nth option to transform the outputJunegunn Choi
This option can be used to replace a sed or awk in the post-processing step. ps -ef | fzf --multi --header-lines 1 | awk '{print $2}' ps -ef | fzf --multi --header-lines 1 --accept-nth 2 This may not be a very "Unix-y" thing to do, so I've always felt that fzf shouldn't have such an option, but I've finally changed my mind because: * fzf can be configured with a custom delimiter that is a fixed string or a regular expression. * In such cases, you'd need to repeat the delimiter again in the post-processing step. * Also, tools like awk or sed may interpret a regular expression differently, causing mismatches. You can still use sed, cut, or awk if you prefer. Close #3987 Close #1323
2025-02-06Fix nth highlightingJunegunn Choi
Fix #4222
2025-01-24Option to prioritize file name matches (#4192)Junegunn Choi
* 'pathname' is a new tiebreak option for prioritizing matches occurring in the file name of the path. * `--scheme=path` will automatically set `--tiebreak=pathname,length`. * fzf will automatically choose `path` scheme when the input is a TTY device, where fzf would start its built-in walker or run `$FZF_DEFAULT_COMMAND` which is usually a command for listing files. Close #4191
2025-01-13Simplify nth comparison when reusing transformed tokensJunegunn Choi
2025-01-13Fix change-nthJunegunn Choi
* Proper clean-up of caches * Force rerender list after the action
2025-01-13Add change-nth actionJunegunn Choi
Example: # Start with --nth 1, then 2, then 3, then back to the default, 1 echo 'foo foobar foobarbaz' | fzf --bind 'space:change-nth(2|3|)' --nth 1 -q foo Close #4172 Close #3109
2024-11-03Remove possible races (#4070)Junegunn Choi
2024-10-31Fix race in reload actionJunegunn Choi
Fix #4070
2024-07-28Remove stale commentJunegunn Choi
2024-07-27Fix build errorJunegunn Choi
2024-07-27Minor refactoringJunegunn Choi
2024-07-27Fix incompatibility of adaptive height and 'start:reload'Junegunn Choi
This command would cause a deadlock and make fzf crash: fzf --bind 'start:reload:ls' --height ~100% Because, 1. 'start' event is handled by Terminal 2. When 'reload' is bound to 'start', fzf avoids starting the initial reader 3. Terminal waits for the initial input to find the right height when adaptive height is used 4. Because the initial reader is not started, Terminal never gets the initial list 5. No chance to trigger 'start:reload', hence deadlock This commit fixes the above problem by extracting the reload command bound to 'start' event and starting the initial reader with that command instead of letting Terminal start it. This commit also makes the environment variables available to $FZF_DEFAULT_COMMAND. FZF_DEFAULT_COMMAND='echo $FZF_QUERY' fzf --query foo Fix #3944
2024-07-05Remove --walker-path-sepJunegunn Choi
Related: #3859 #3907 #3909
2024-06-29Add --walker-path-sep=CHAR to use a different path separatorJunegunn Choi
This is needed when you run a Windows binary on WSL or zsh on Windows where forward slashes are expected. export FZF_DEFAULT_OPTS='--walker-path-sep /' Close #3859
2024-06-24Do not start the initial reader if 'reload*' is bound to 'start'Junegunn Choi
2024-06-17Improved --sync behaviorJunegunn Choi
When --sync is provided, fzf will not render the interface until the initial filtering and associated actions (bound to any of 'start', 'load', or 'result') are complete.
2024-06-15--sync: Do not start TUI until initial filtering is completeJunegunn Choi
2024-06-12Do not open tmux or winpty in `--filter` modeJunegunn Choi
2024-06-10Less aggressive chunk cache invalidation for --tailJunegunn Choi
2024-06-04Add --tail=NUM to limit the number of items to keep in memoryJunegunn Choi
2024-06-01--tmux vs. --height: Last one winsJunegunn Choi
2024-05-23Use MSYS=enable_pcon instead of winpty on mintty 3.4.5 or laterJunegunn Choi
2024-05-23Do not run as winpty proxy if winpty is not availableJunegunn Choi
2024-05-20Use winpty to launch fzf in Git bash (mintty)Junegunn Choi
Close #3806 Known limitation: * --height cannot be used
2024-05-18Add --tmux option to replace fzf-tmux scriptJunegunn Choi
2024-05-07Refactor the code to remove global variablesJunegunn Choi
2024-05-07Refactor the code so that fzf can be used as a library (#3769)Junegunn Choi
2024-04-27Add --with-shell for shelling out with different command and flags (#3746)Junegunn Choi
Close #3732
2024-04-20Remove invalid 'result' event when using --sync optionJunegunn Choi
When the search for the initial query doesn't finish immediately fzf would trigger an invalid 'result' event for an empty query. seq 100 | fzf --query 99 --bind result:accept --sync # Prints 99 seq 1000000 | fzf --query 99 --bind result:accept --sync # Should print 99, but fzf would print 1
2024-04-14Fix streaming filter mode by not running reader callback concurrentlyJunegunn Choi
Close #3728
2024-04-13Enable profiling options when 'pprof' tag is set (#2813)Charlie Vieth
This commit enables cpu, mem, block, and mutex profling of the FZF executable. To support flushing the profiles at program exit it adds util.AtExit to register "at exit" functions and mandates that util.Exit is used instead of os.Exit to stop the program. Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2024-04-02Further performance improvements by removing unnecessary copiesJunegunn Choi
2024-04-01Improve ingestion performance (by around 20%)Junegunn Choi
2024-03-27Fix reload and reload-sync behaviorsJunegunn Choi
https://github.com/junegunn/fzf/discussions/3696#discussioncomment-8915593