summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-08-25ripgrep: use winapi-util for stdin_is_readableAndrew Gallant
2018-08-25deps: update various depsAndrew Gallant
This includes a new crate, winapi-util, that is now used in wincolor, walkdir and same-file.
2018-08-23changelog: fix typoTim Kilbourn
Fuchsia is a pain to spell. PR #1026
2018-08-23doc: clarify use of SIMD featuresAndrew Gallant
You need a nightly compiler. Ref #188
2018-08-23deps: update walkdir minimum versionAndrew Gallant
We'll want to be using the new `same_file_system` option soon.
2018-08-22deps: update dependenciesAndrew Gallant
This includes an update to walkdir 2.2.2, which includes a `same_file_system` option.
2018-08-21deps: update clapAndrew Gallant
Update clap to the latest version. Also, drop the ansi_term dependency by disabling color output in clap's error messages.
2018-08-21deps: various patch upgradesAndrew Gallant
2018-08-21ignore: fix false positive in path_is_symlinkAndrew Gallant
This commit fixes a bug where the first path always reported itself as as symlink via `path_is_symlink`. Part of this fix includes updating walkdir to 2.2.1, which also includes a corresponding bug fix. Fixes #984
2018-08-21release: better support for binary Debian packageAndrew Gallant
This commit beefs up the package metadata used by the 'cargo deb' tool to produce a binary dpkg. In particular, we now include ripgrep's man page. This commit includes a new script, 'ci/build_deb.sh', which will handle the build process for a dpkg, which has become a bit more nuanced than just running 'cargo deb'. We don't (yet) run this script in CI. Fixes #842
2018-08-21doc: update ripgrep's descriptionAndrew Gallant
This now mentions PCRE2 support.
2018-08-21grep-printer: fix bug in printing truncated linesAndrew Gallant
When emitting color, the printer wasn't checking whether the line exceeded the maximum allowed length.
2018-08-21tests: touch up tests on WindowsAndrew Gallant
This fixes warnings and adds an additional invalid UTF-8 test that will run on Windows.
2018-08-21ripgrep: remove workaround for std bugAndrew Gallant
This commit undoes a work-around for a bug in Rust's standard library that prevented correct file type detection on Windows in OneDrive directories. We remove the work-around because we are moving to a latest-stable Rust version policy, which has included this fix for a while now. ref #705, https://github.com/rust-lang/rust/issues/46484
2018-08-21ignore: clarify docs for DirEntry::errorAndrew Gallant
Fixes #953
2018-08-21ripgrep: move minimum version to Rust stableAndrew Gallant
This also updates some code to make use of our more liberal versioning requirement, including the use of crossbeam-channel instead of the MsQueue from the older an unmaintained crossbeam 0.3. This does regrettably add a sizable number of dependencies, however, compile times seem mostly unaffected. Closes #1019
2018-08-21ripgrep: make --no-pcre2-unicode the canonical flagAndrew Gallant
Previously, we used --pcre2-unicode as the canonical flag despite the fact that it is enabled by default, which is inconsistent with how we handle other similar flags. The reason why --pcre2-unicode was made the canonical flag was to make it easier to discover since it would be sorted near the --pcre2 flag. To solve that problem, we simply start a convention that lists related flags in the docs. Fixes #1022
2018-08-20doc: fix typoAndrew Gallant
2018-08-20doc: caveatsAndrew Gallant
2018-08-20ripgrep: small cleanupsgrep-search-0.1.0grep-regex-0.1.0grep-printer-0.1.0grep-pcre2-0.1.0grep-matcher-0.1.0grep-0.2.0Andrew Gallant
2018-08-20doc: add section on PCRE2 performanceAndrew Gallant
2018-08-20deps: update other dependencies to latestAndrew Gallant
2018-08-20deps: update libripgrep crate versionsAndrew Gallant
This prepares them for an initial 0.1.0 release.
2018-08-20ignore/types: add .mako and .mao for Mako templatesAndy Freeland
I've personally never seen `.mao`, but GitHub includes it in Linguist: https://github.com/github/linguist/blob/4f11062304ae28b09a9b90c4536a92a27e142dcb/lib/linguist/languages.yml#L2702-L2709
2018-08-20complete: add completion reference guidedana
2018-08-20ripgrep: add --no-multiline-dotalldana
2018-08-20ripgrep: fix typos in option descriptionsdana
2018-08-20complete: update wording, exclusion, &c.dana
2018-08-20test_complete: match certain long options in description bodiesdana
2018-08-20changelog: massive update for libripgrepAndrew Gallant
This commit updates the CHANGELOG to reflect all the work done to make libripgrep a reality. * Closes #162 (libripgrep) * Closes #176 (multiline search) * Closes #188 (opt-in PCRE2 support) * Closes #244 (JSON output) * Closes #416 (Windows CRLF support) * Closes #917 (trim prefix whitespace) * Closes #993 (add --null-data flag) * Closes #997 (--passthru works with --replace) * Fixes #2 (memory maps and context handling work) * Fixes #200 (ripgrep stops when pipe is closed) * Fixes #389 (more intuitive `-w/--word-regexp`) * Fixes #643 (detection of stdin on Windows is better) * Fixes #441, Fixes #690, Fixes #980 (empty matching lines are weird) * Fixes #764 (coalesce color escapes) * Fixes #922 (memory maps failing is no big deal) * Fixes #937 (color escapes no longer used for empty matches) * Fixes #940 (--passthru does not impact exit status) * Fixes #1013 (show runtime CPU features in --version output)
2018-08-20tests: re-tool integration testsAndrew Gallant
This basically rewrites every integration test. We reduce the amount of magic involved here in terms of which arguments are being passed to ripgrep processes. To make up for the boiler plate saved by the magic, we make the Dir (formerly WorkDir) type a bit nicer to use, along with a new TestCommand that wraps a std::process::Command. In exchange, we get tests that are easier to read and write. We also run every test with the `--pcre2` flag to make sure that works, when PCRE2 is available.
2018-08-20ripgrep: migrate to libripgrepAndrew Gallant
This commit does the work to delete the old `grep` crate and effectively rewrite most of ripgrep core to use the new libripgrep crates. The new `grep` crate is now a facade that collects the various crates that make up libripgrep. The most complex part of ripgrep core is now arguably the translation between command line parameters and the library options, which is ultimately where we want to be.
2018-08-20libripgrep: initial commit introducing libripgrepAndrew Gallant
libripgrep is not any one library, but rather, a collection of libraries that roughly separate the following key distinct phases in a grep implementation: 1. Pattern matching (e.g., by a regex engine). 2. Searching a file using a pattern matcher. 3. Printing results. Ultimately, both (1) and (3) are defined by de-coupled interfaces, of which there may be multiple implementations. Namely, (1) is satisfied by the `Matcher` trait in the `grep-matcher` crate and (3) is satisfied by the `Sink` trait in the `grep2` crate. The searcher (2) ties everything together and finds results using a matcher and reports those results using a `Sink` implementation. Closes #162
2018-08-17readme: ripgrep is available in Debian BusterSylvestre Ledru
PR #1016
2018-08-15grep: remove senseless testAndrew Gallant
It was pulling in a sizable data file and doesn't appear to be testing anything meaningful that isn't covered by a variety of other tests.
2018-08-14ignore/types: add *.sbt to scala typewoky
Sbt is currently most used Scala build tool which uses *.sbt files, which are basically Scala. PR #1010
2018-08-07ignore/types: add Idris, Dhall and ATSVanessa McHale
And also improve Haskell detection. PR #1007
2018-08-07readme: update debian link to 0.9.0Jonatan Hamberg
PR #1006
2018-08-06deps: update bytecount to 0.3.2llogiq
PR #1003
2018-08-03pkg: update brew tap to 0.9.0Andrew Gallant
2018-08-03release: 0.9.00.9.0Andrew Gallant
2018-08-03grep-0.1.9grep-0.1.9Andrew Gallant
2018-08-03deps: update termcolor and encoding_rs_ioAndrew Gallant
2018-07-29tests: reduce reliance on state in testsAndrew Gallant
This commit improves the integration test setup by running tests inside the system's temporary directory instead of within ripgrep's `target` directory. The motivation here is to attempt to reduce the effect of unanticipated state on ripgrep's integration tests, such as the presence of `.gitignore` files in ripgrep's checkout directory hierarchy (including parent directories). This doesn't remove all possible state. For example, there's no guarantee that the system's temporary directory isn't itself within a git repository. Moreover, there may still be other ignore rules in the directory tree that might impact test behavior. Fixing this seems somewhat difficult. Conceptually, it seems like ripgrep should run each test in its own `chroot`-like environment, but doing this in a non-annoying and portable way (including Windows) doesn't appear to be possible. Another approach to take here might be to teach ripgrep itself that a particular directory should be treated as root, and therefore, never look at anything outside that directory. This also seems complex to implement, but tractable. Let's see how this approach works for now. Fixes #448, #996
2018-07-29tests/style: 80 columns, dammitAndrew Gallant
2018-07-29ignore: fix typoAndrew Gallant
2018-07-29ignore/style: 80 columns, dammitAndrew Gallant
2018-07-29ignore: fix bug in matched_path_or_any_parentsAndrew Gallant
This method was supposed to panic whenever the given path wasn't under the root of the gitignore patcher. Instead of using assert!, it was using debug_assert!. This actually caused tests to fail when running under release mode, because the debug_assert! wouldn't trip. Fixes #671
2018-07-28ignore-0.4.3ignore-0.4.3Andrew Gallant
2018-07-28globset-0.4.1globset-0.4.1Andrew Gallant