Commit Graph

55 Commits

Author SHA1 Message Date
Kovid Goyal
b627d2e4ab Move error handling code into its own library 2025-10-12 13:51:16 +05:30
Kovid Goyal
4af95b3c51 choose_files: start work on image previews 2025-10-07 11:11:42 +05:30
Kovid Goyal
b980eb2726 Fix sort by dates initial application 2025-07-20 21:44:29 +05:30
Kovid Goyal
bd0f55531f Implement previews for plain text files 2025-07-20 19:24:17 +05:30
phanium
3c54cb99d9 Fix kitten choose-files panic
Error: Panicked: runtime error: invalid memory address or nil pointer
dereference
Panicked with error: runtime error: invalid memory address or nil
pointer dereference
Stacktrace (most recent call first):
github.com/kovidgoyal/kitty/kittens/choose_files.(*FileSystemScanner).worker
        kitty/kittens/choose_files/scan.go:351
2025-07-12 22:32:08 +08:00
Kovid Goyal
513fd720eb Implement mouse interaction with result list 2025-07-11 10:36:20 +05:30
Kovid Goyal
6f511ae66a Add a bunch of settings to control filesystem scanning 2025-07-10 10:30:48 +05:30
Kovid Goyal
96ba62f34e API to toggle the new flags 2025-07-09 21:08:18 +05:30
Kovid Goyal
0f8d1ec5cc Add flags to control respecting ignores and showing hidden files/folders 2025-07-09 20:46:45 +05:30
Kovid Goyal
932b0ccdc5 Add tests for ignore file processing 2025-07-09 20:21:06 +05:30
Kovid Goyal
f742009c55 Ensure global gitignore file is not loaded in tests 2025-07-09 14:31:46 +05:30
Kovid Goyal
351275cb8c Work on adding ignorefiles support to choose-files 2025-07-09 11:54:43 +05:30
Kovid Goyal
bbdafb5641 ... 2025-07-04 14:30:14 +05:30
Kovid Goyal
0c017e3c9b Move filtering into file system scanner
Greatest reduction in work, changing filtering is rare
therefore, rescan is not too bad.
2025-07-04 14:24:15 +05:30
Kovid Goyal
76d0991b76 Work on filter support 2025-07-04 13:37:56 +05:30
Kovid Goyal
a8bb24e1c0 Use a faster result collection type for rendering sorted results 2025-06-29 22:22:20 +05:30
Kovid Goyal
41346f2e5b Use a smarter result collection datatype
Avoids unnecessary copying of result structs on realloc
2025-06-27 14:32:08 +05:30
Kovid Goyal
17c84383f7 Dont store abspath on each result
Optimisation as abspath is calculated in hot path. Instead calculate on
demand.
2025-06-26 19:21:04 +05:30
Kovid Goyal
4256fa5418 Dont recurse into symlinks
Allows us to get rid of expensive tracking to avoid symlink loops.
Users can explicitly change dir to a symlinked dir to select from it.
2025-06-26 19:02:28 +05:30
Kovid Goyal
271f51c55f Use a set instead of map for seen dirs 2025-06-26 17:37:44 +05:30
Kovid Goyal
18d0dda248 micro-optimization: compare using bytes.Compare instead of string based comparison 2025-06-25 17:39:29 +05:30
Kovid Goyal
361792c922 Add some benchmarking for choose_files 2025-06-25 17:28:23 +05:30
Kovid Goyal
536c470271 Move locking into its own method 2025-06-25 11:12:19 +05:30
Kovid Goyal
d70afc285c Dont break loop on dir read error 2025-06-25 08:54:11 +05:30
Kovid Goyal
0ec6dc4ef8 DRYer 2025-06-25 08:41:27 +05:30
Kovid Goyal
324b95f825 Fix recursion into symlinks to dirs 2025-06-25 08:35:38 +05:30
Kovid Goyal
37e9d2435b ... 2025-06-25 08:07:01 +05:30
Kovid Goyal
c3c4ecb135 Use an arena for sorting lowercase allocs 2025-06-25 08:03:44 +05:30
Kovid Goyal
57adff46d7 Faster sorting of dir entries 2025-06-25 06:40:15 +05:30
Kovid Goyal
ccfd1d406e switch to a breadth first traversal 2025-06-24 22:01:49 +05:30
Kovid Goyal
7c6fa2db57 micro optimization 2025-06-24 21:18:56 +05:30
Kovid Goyal
6b07ad7ba4 When scores match tie break with length 2025-06-24 21:17:02 +05:30
Kovid Goyal
b8d53208ea string representation for combined score 2025-06-24 20:54:51 +05:30
Kovid Goyal
2426705a50 Do scoring in limited batch sizes for responsiveness 2025-06-24 20:42:32 +05:30
Kovid Goyal
18253114be finish wiring up the new scanning code 2025-06-24 20:03:51 +05:30
Kovid Goyal
8b51f4da87 Refactor scanning code
Only use channels for signalling, have worker threads append to results
array directly since this is thread safe
2025-06-24 11:28:51 +05:30
Kovid Goyal
9de6bfbbd7 More work on choose files kitten 2025-06-19 11:43:12 +05:30
Kovid Goyal
e1a25a963c More work on choose files kitten 2025-06-18 17:21:05 +05:30
Kovid Goyal
8aeb1ae6eb Implement merging of fzf results 2025-06-11 07:08:43 +05:30
Kovid Goyal
ecb342fb32 Start work on integration fzf code into choose files 2025-06-10 06:50:20 +05:30
Kovid Goyal
579c380a72 Only store the file type bits not the full os.DirEntry in the result struct 2025-06-06 20:01:59 +05:30
Kovid Goyal
d8410dff24 Ensure positions are always sorted when rendering 2025-06-06 19:50:01 +05:30
Kovid Goyal
a16ad78de8 ... 2025-06-02 08:56:28 +05:30
Kovid Goyal
ad41c365c8 Dont score files when browsing only directories 2025-06-02 08:43:23 +05:30
Kovid Goyal
7ab37116d7 Implement only dir selection mode 2025-06-02 08:35:35 +05:30
Kovid Goyal
d1faccdd1c Loop API print proper stack traces for panics in go routines 2025-06-01 12:51:59 +05:30
Kovid Goyal
8d3b3f527c Let the user control recursion using the search pattern 2025-06-01 12:23:18 +05:30
Kovid Goyal
4d77c8739e Prefer lowercase entries
Also recurse to depth 1 by default. This matches behavior of GUI file
select dialogs and prevents perf problems
2025-06-01 09:01:43 +05:30
Kovid Goyal
96436f10f7 Allow modifying the score of matches using a regex 2025-05-23 11:31:50 +05:30
Kovid Goyal
aec8a6b0b4 Use a regular expression for exclusion 2025-05-22 23:06:28 +05:30