summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Rewrite cursor implementationJohn Hawthorn2017-10-16
| | | | | | | Index the cursor from the beginning instead of the end, which is easier (at least for me) to think about. This also fixes issues with Ctrl-W in the previous implementation.
* Merge pull request #46 from keith/ks/arrow-keysJohn Hawthorn2017-10-07
|\ | | | | Support arrow key movements
| * Support arrow key movementsKeith Smiley2017-08-13
| |
* | Fix line maximum line length when scores are shownJonathan Neuschäfer2017-09-24
|/
* Ignore bracketed paste charactersKeith Smiley2017-08-13
|
* Add acceptance test for --helpJohn Hawthorn2017-02-07
| | | | Also shorten help to fit 80 characters wide terminal.
* Add -j option to control parallelismJohn Hawthorn2017-01-31
|
* Pass options to choices_initJohn Hawthorn2017-01-31
|
* Merge partially sorted lists in parallelJohn Hawthorn2017-01-26
|
* Replace k-way-merge with 2-way mergeJohn Hawthorn2017-01-26
|
* Perform sort in parallelJohn Hawthorn2017-01-26
|
* Fix memory leak of jobJohn Hawthorn2017-01-26
|
* Support movement with CTRL-J/CTRL-KMichael Stock2017-01-17
|
* Improve parallelism of search workersJohn Hawthorn2017-01-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the list of candidates was split between threads a priori, with each thread being evenly distributed a contiguous range from the search candidates. This did a bad job of distributing the work evenly. There are likely to be areas with significantly more matches than others (ex. files within directories which match the search terms), as well as areas with longer strings than others (ex. deep directories). Because of the type of data fzy receives, work allocation needs to be dynamic. This commit changes the workers to operate on the candidates in batches, until they have all been processed. Batches are allocated by locking a mutex and grabbing the next available range of BATCH_SIZE candidates. BATCH_SIZE is currently set at 512, which worked best on my laptop in a quick test. This will always be a compromise. Small batch sizes will distribute the work more evenly, but larger batch sizes will be friendlier to CPU caches. Quick testing: Before: ./fzy -e drivers --benchmark < linux_files.txt 1.69s user 0.03s system 163% cpu 1.053 total After: ./fzy -e drivers --benchmark < linux_files.txt 2.12s user 0.02s system 296% cpu 0.721 total
* Store choices on job structJohn Hawthorn2017-01-08
|
* Create search_job structJohn Hawthorn2017-01-08
|
* Remove unused and uninitialized worker struct varJohn Hawthorn2017-01-08
|
* Fix tty_interface clear for num_lines=0John Hawthorn2016-12-28
|
* Fix a problem that the cursor position shifted upwardmomotaro2016-12-21
|
* Fix segfault when encountering utf-8 charactersJohn Hawthorn2016-08-03
|
* Add sys/select.h to fix building with musl libcDuncaen2016-07-31
|
* Add a few missing static declarationsJohn Hawthorn2016-07-12
|
* Fix segfault when autocompleting on no matchesJohn Hawthorn2016-07-12
|
* Use macros to help with bonus tablesJohn Hawthorn2016-07-12
|
* Use standards-compliant lookup tableJohn Hawthorn2016-07-12
|
* Use a lookup table for precompute_bonusesJohn Hawthorn2016-07-10
|
* Use score_t instead of doubleJohn Hawthorn2016-07-10
|
* Don't consider numbers word separatorsJohn Hawthorn2016-07-10
| | | | | | This made sense on paper when deciding what was a "word". However in reality this is rarely an indication of a separate word. I've found that this caused hexadecimal or base64 strings to be favoured in matches.
* Split bonus computation into own methodJohn Hawthorn2016-07-10
|
* Store result of getopt_long in an intJohn Hawthorn2016-06-22
| | | | This fixes issues on ARM, where char is unsigned.
* Use number of processors as worker countJohn Hawthorn2016-06-22
| | | | | | | Since we're dividing the search set equally between processors, we want to run with the same number of workers that we have CPU execution threads. This avoids having a worker which is starved until the end of execution.
* Store worker_count on choices_tJohn Hawthorn2016-06-22
|
* Use threading when matching/scoringJohn Hawthorn2016-06-22
|
* Use threading when matching/scoringJohn Hawthorn2016-06-22
|
* Change match into if/elseJohn Hawthorn2016-06-22
| | | | | This is marginally faster and I still think it reads very well (maybe better).
* Add tests for exact scoresJohn Hawthorn2016-06-22
| | | | Preparing for some changes to the match method
* Batch together input for searchesJohn Hawthorn2016-06-22
|
* Add pageup and pagedownJohn Hawthorn2016-06-22
|
* Use a struct to store keybindingsJohn Hawthorn2016-06-22
|
* Extract append_search methodJohn Hawthorn2016-06-22
|
* Move all action into their own functionsJohn Hawthorn2016-06-20
|
* Track last searchJohn Hawthorn2016-06-20
| | | | This allows us to avoid explicitly calling out to choices_search
* Use tty_interface_t to communicate exitJohn Hawthorn2016-06-20
|
* Return exit code from runJohn Hawthorn2016-06-20
|
* Use tty_interface_t throughoutJohn Hawthorn2016-06-19
|
* Remove options global variableJohn Hawthorn2016-06-19
|
* Store state in tty_interface_tJohn Hawthorn2016-06-19
|
* Extract tty interface to own fileJohn Hawthorn2016-06-19
|
* Ensure options is passed as a pointerJohn Hawthorn2016-06-19
|
* Extract option parsing to separate fileJohn Hawthorn2016-06-19
|