summaryrefslogtreecommitdiffstats
path: root/Cargo.lock
AgeCommit message (Collapse)Author
2016-11-210.3.10.3.1Andrew Gallant
2016-11-21bump termcolorAndrew Gallant
2016-11-200.3.0Andrew Gallant
2016-11-20Completely re-work colored output and tty handling.Andrew Gallant
This commit completely guts all of the color handling code and replaces most of it with two new crates: wincolor and termcolor. wincolor provides a simple API to coloring using the Windows console and termcolor provides a platform independent coloring API tuned for multithreaded command line programs. This required a lot more flexibility than what the `term` crate provided, so it was dropped. We instead switch to writing ANSI escape sequences directly and ignore the TERMINFO database. In addition to fixing several bugs, this commit also permits end users to customize colors to a certain extent. For example, this command will set the match color to magenta and the line number background to yellow: rg --colors 'match:fg:magenta' --colors 'line:bg:yellow' foo For tty handling, we've adopted a hack from `git` to do tty detection in MSYS/mintty terminals. As a result, ripgrep should get both color detection and piping correct on Windows regardless of which terminal you use. Finally, switch to line buffering. Performance doesn't seem to be impacted and it's an otherwise more user friendly option. Fixes #37, Fixes #51, Fixes #94, Fixes #117, Fixes #182, Fixes #231
2016-11-17Switch from Docopt to Clap.Andrew Gallant
There were two important reasons for the switch: 1. Performance. Docopt does poorly when the argv becomes large, which is a reasonable common use case for search tools. (e.g., use with xargs) 2. Better failure modes. Clap knows a lot more about how a particular argv might be invalid, and can therefore provide much clearer error messages. While both were important, (1) made it urgent. Note that since Clap requires at least Rust 1.11, this will in turn increase the minimum Rust version supported by ripgrep from Rust 1.9 to Rust 1.11. It is therefore a breaking change, so the soonest release of ripgrep with Clap will have to be 0.3. There is also at least one subtle breaking change in real usage. Previous to this commit, this used to work: rg -e -foo Where this would cause ripgrep to search for the string `-foo`. Clap currently has problems supporting this use case (see: https://github.com/kbknapp/clap-rs/issues/742), but it can be worked around by using this instead: rg -e [-]foo or even rg [-]foo and this still works: rg -- -foo This commit also adds Bash, Fish and PowerShell completion files to the release, fixes a bug that prevented ripgrep from working on file paths containing invalid UTF-8 and shows short descriptions in the output of `-h` but longer descriptions in the output of `--help`. Fixes #136, Fixes #189, Fixes #210, Fixes #230
2016-11-09Pin rustc-serialize to 0.3.19.0.2.9Andrew Gallant
See: https://github.com/rust-lang-nursery/rustc-serialize/pull/159
2016-11-090.2.9Andrew Gallant
2016-11-09update depsAndrew Gallant
2016-11-060.2.80.2.8Andrew Gallant
2016-11-060.2.70.2.7Andrew Gallant
2016-11-06Update sub-crate dependency versions.Andrew Gallant
2016-11-05Actually use simd/avx optimizations in bytecount crate.Andrew Gallant
Also update compile script.
2016-11-05Use the bytecount crate for fast line counting.Andre Bogus
Fixes #128
2016-11-05Add parallel recursive directory iterator.Andrew Gallant
This adds a new walk type in the `ignore` crate, `WalkParallel`, which provides a way for recursively iterating over a set of paths in parallel while respecting various ignore rules. The API is a bit strange, as a closure producing a closure isn't something one often sees, but it does seem to work well. This also allowed us to simplify much of the worker logic in ripgrep proper, where MultiWorker is now gone.
2016-11-04update ripgrepAndrew Gallant
2016-10-31update ignore dependencyAndrew Gallant
2016-10-31update Cargo.lockAndrew Gallant
2016-10-29update depsAndrew Gallant
2016-10-29Reset the terminal when Ctrl-C is pressedBrian Campbell
If a user hits Ctrl-C to exit out of a search in the middle of printing a line, we don't want to leave the terminal colors screwed up for them. Catch Ctrl-C using the ctrlc crate, obtain a stdout lock to ensure that other threads don't continue writing after we do so, reset the terminal, and exit the program. Closes #119
2016-10-29Move all gitignore matching to separate crate.Andrew Gallant
This PR introduces a new sub-crate, `ignore`, which primarily provides a fast recursive directory iterator that respects ignore files like gitignore and other configurable filtering rules based on globs or even file types. This results in a substantial source of complexity moved out of ripgrep's core and into a reusable component that others can now (hopefully) benefit from. While much of the ignore code carried over from ripgrep's core, a substantial portion of it was rewritten with the following goals in mind: 1. Reuse matchers built from gitignore files across directory iteration. 2. Design the matcher data structure to be amenable for parallelizing directory iteration. (Indeed, writing the parallel iterator is the next step.) Fixes #9, #44, #45
2016-10-16Update deps.Andrew Gallant
2016-10-11Switch to thread_local crate in lieu of thread_local!.Andrew Gallant
This is to work around a bug where using a thread_local! was causing a segfault on macos. Fixes #164.
2016-10-10Update regex-syntax for bug fix.Andrew Gallant
The bug fix was in expression pretty printing. ripgrep parses the regex into an AST and may do some modifications to it, which requires the ability to go from string -> AST -> string' -> AST' where string == string' implies AST == AST'. Also, add a regression test for the specific regex that tripped the bug. Fixes #156.
2016-10-10Finish overhaul of glob matching.Andrew Gallant
This commit completes the initial move of glob matching to an external crate, including fixing up cross platform support, polishing the external crate for others to use and fixing a number of bugs in the process. Fixes #87, #127, #131
2016-10-04Refactor and test glob sets.Andrew Gallant
This commit goes a long way toward refactoring glob sets so that the code is easier to maintain going forward. In particular, it makes the literal optimizations that glob sets used a lot more structured and much easier to extend. Tests have also been modified to include glob sets. There's still a bit of polish work left to do before a release. This also fixes the immediate issue where large gitignore files were causing ripgrep to slow way down. While we don't technically fix it for good, we're a lot better about reducing the number of regexes we compile. In particular, if a gitignore file contains thousands of patterns that can't be matched more simply using literals, then ripgrep will slow down again. We could fix this for good by avoiding RegexSet if the number of regexes grows too large. Fixes #134.
2016-09-30Move glob implementation to new crate.Andrew Gallant
It is isolated and complex enough that it deserves attention all on its own. It's also eminently reusable.
2016-09-28bump docopt to 0.6.86Andrew Gallant
2016-09-260.2.10.2.1Andrew Gallant
2016-09-250.2.00.2.0Andrew Gallant
2016-09-25bump grep to 0.1.3Andrew Gallant
2016-09-24Update to docopt 0.6.85.Andrew Gallant
The new version won't panic if printing to stdout fails. Fixes #22.
2016-09-230.1.170.1.17Andrew Gallant
2016-09-220.1.160.1.16Andrew Gallant
2016-09-220.1.150.1.15Andrew Gallant
2016-09-220.1.140.1.14Andrew Gallant
2016-09-210.1.130.1.13Andrew Gallant
2016-09-210.1.120.1.12Andrew Gallant
2016-09-210.1.110.1.11Andrew Gallant
2016-09-210.1.100.1.10Andrew Gallant
2016-09-210.1.90.1.9Andrew Gallant
2016-09-210.1.80.1.8Andrew Gallant
2016-09-200.1.70.1.7Andrew Gallant
2016-09-200.1.60.1.6Andrew Gallant
2016-09-190.1.50.1.5Andrew Gallant
2016-09-170.1.30.1.3Andrew Gallant
2016-09-170.1.20.1.2Andrew Gallant
2016-09-17bump grepAndrew Gallant
2016-09-16Update walkdirAndrew Gallant
2016-09-16Some minor performance tweaks.Andrew Gallant
This includes moving basename-only globs into separate regexes. The hope is that if the regex processes less input, it will be faster.
2016-09-15Rework glob sets.Andrew Gallant
We try to reduce the pressure on regexes and offload some of it to Aho-Corasick or exact lookups.