History file for ack 3. https://beyondgrep.com/v3.8.1 Tue Dec 31 21:22:59 CST 2024========================================[ENHANCEMENTS]The rules for Pytest were modified so that zsh's ad hoc scraping offiletypes for tab completion wouldn't blow up. (GH #386)v3.8.0 Fri Dec 20 22:07:26 CST 2024========================================[FEATURES]Add --and and --or options to allow combinations of search terms. This isin addition to the --not that was added in v3.7.0. (GH #385)Add support for Pytest filetype.Add support for Terraform. Thanks, Thiago Perrotta. (GH #377)[FIXES]The ack-standalone that gets built, and is what's available for download athttps://beyondgrep.com, now puts each of the modules it pulls in into itsown lexical scope. This should fix any future conflicts of pragmata thatmight come up in the future. Thanks, mauke. (GH #376)v3.7.0 Sat Feb 25 14:00:57 CST 2023========================================[FEATURES]Added a repeatable --not option to let you supply patterns that should NOTmatch. For example, if you want to search for "dogs" but not if "cats" or"fish" are on the same line, you can do: ack dogs --not cats --not fishAdded .Rmd to the list of extensions understood to be R. Thanks, KieranMace. (GH#358)Added file type for for Powershell (.ps1 and .psm1 files). Thanks, ThomasGossler, (GH#362)v3.6.0 Sat Aug 20 22:57:47 CDT 2022========================================[FEATURES]Added default ignores for Python's pickle serialization format (GH#348)Added default ignore for Visual Studio's user & workspace settings. Thanks,Gabor Szabo. (GH#324)Added support for the Crystal language. Thanks, Gabor Szabo. (GH#340)Fixed some spelling errors. Thanks, Frieder Bluemle. (GH#310)Added .sbt as a Scala extension. Thanks, Grzegorz Kaczmarczyk. (GH#322)[DOCS]Fixed incorrect example in the docs for --range-start. Thanks, Alex Beamish.v3.5.0 Fri Mar 12 22:29:44 CST 2021========================================[FIXES]Reworked the option parsing to run correctly with Getopt::Long 2.38.[FEATURES]Added support for the Elm language. (GH#316)Added support for the Purescript language. (GH#317)Added support for the Bazel build tool. (GH#327)v3.4.0 Mon Jun 29 23:04:18 CDT 2020========================================[FEATURES]When calling "ack -c" to get a list of filenames and counts, the filenamewould not be colored like when getting normal search results. Now it will.Thanks to Matthew Hughes for adding the feature, and Ophir Lifshitz for thesuggestion. (GH#282)Added --toml for the TOML filetype. (GH#306)[FIXES]The test t/ack-x.t would fail when run as root. Now it is skipped. Thanks,Michael LaGrasta. (GH#217)v3.3.1 Mon Jan 13 10:27:16 CST 2020========================================[FIXES]Some regexes would be shown as invalid when used with the -Q option. Sincethe -Q tells ack to treat the regex as a literal, this shouldn't bepossible. (GH#294)v3.3.0 Sat Dec 28 16:00:21 CST 2019========================================[FEATURES]The error message ack displays when the regex passed is invalid has beenimproved. The message is more readable and includes a pointer to theoffending part of the regex. For example: $ ack 'status: (open|closed|in progress' ack: Invalid regex 'status: (open|closed|in progress' Regex: status: (open|closed|in progress ^---HERE Unmatched ( in regexAdded many new file and directory exclusions to speed up file selection.* Python's *.pyc, *.pyd and *.pyo compiled files* Python's __pycache__ and .pytest_cache directories* Linux *.so shared object files* Windows dynamic-link library *.dll files* gettext compiled *.mo translation files* macOS's __MACOSX directories and .DS_Store filesReorganized the --help menu to put "action" options like -f, -g and -l atthe top of the listing.The --show-types option only has an effect with -f or -g. ack will nowtell you if you use --show-types without -f or -g when it will have noeffect.Improved the error message when ack gets passed two options that can't beused together.[FIXES]Fixed the behavior of --break and --heading. Using --break wouldimplicitly set --noheading, and --heading would implicitly set --nobreak.The following pairs of options don't make sense to use together, and ack will now warn you if you try:* -x and --files-from* -v and -o* -v and --output* -v and --passthruFixed the minimum version of the Getopt::Long module required. (GH #287)The line number and filename separators in --passthru mode now work thesame as in context (-A/-B/-C) mode. (GH #291)v3.2.0 Sun Nov 3 22:52:18 CST 2019========================================[FEATURES]Added "-t X" as a short alias for --type=X.Added "-T X" as a short alias for --type=noX.The feature of using the name of the type as an option is deprecated. Forexample, ack currently lets you use "--perl" instead of "--type=perl" or"-t perl", This is now deprecated and will be removed in a future release.Removed support for Parrot (--parrot).v3.1.3 Sat Oct 19 19:23:48 CDT 2019========================================No changes to functionality. Fixed a problem with version numbers.Thanks to Dan Book for his help.See https://github.com/beyondgrep/ack3/commit/b3c43d44109dea6ebc0753107a8e85a6b322f4cav3.1.2 Mon Oct 14 21:47:51 CDT 2019========================================[SPEEDUP]Using -w with a pattern that ended with a metacharacter would be slowerthan it should be because it would skip an optimization. Now it's fixed.(GH #181, #251)[FIXES]Fixed test failures that would sometimes happen on Windows machines becauseof taint mode. Thanks, Tomasz Konojacki. (GH #235)Remove the use of the version.pm module.v3.1.1 Sat Aug 31 22:56:10 CDT 2019========================================[SPEEDUP]Improved the speed up the -l, -L and -c options by pre-scanning the filein bulk before doing line-by-line scan. (GH #221)ack now uses File::Next 1.18 which calls stat() only once per file ordirectory, instead of sometimes calling it twice. This should improve thetime spent traversing directories.[FIXES]On Windows, patterns with $ to mark the end of the line would not match.(GH #229)[DOCUMENTATION]Fixed docs that referred to --range-stop instead of --range-end. (GH #228)v3.1.0 Thu Aug 22 22:43:15 CDT 2019========================================[FEATURES]Added the --range-start and --range-end options to allow searching onlyranges of each file. (GH #165)v3.0.3 Tue Aug 20 23:42:02 CDT 2019========================================[FIXES]Made smartcase's check for lowercase patterns smarter.[DOCUMENTATION]Updated many URLs, especially in the config. (GH #223)v3.0.2 Thu Jul 4 21:42:43 CDT 2019========================================[FIXES]ack's smart-case feature would think that a pattern like "select \S+ from"is looking for a uppercase letter, and so would not make a case-insensitivesearch. Now, ack knows that uppercase letters in metacharacters don'tcount as looking for a uppercase letter. (GH #156, 187, 214)v3.0.1 Tue Jun 25 20:47:58 CDT 2019========================================[FIXES]The -s option tells ack not to complain about missing or unreadable filesit tries to search. The -s option would not always work in conjection withthe -x option. Now it does. Thanks, Anders Eriksson and M. Scott Ford.(GH #175)ack would die if you specified a --output option that didn't use oneof Perl's special match variables. Now it won't. Thanks, M. ScottFord. (GH #210)[INTERNALS]Added a Dockerfile for use when working on ack development. Thanks,M. Scott Ford. (GH #208)v3.0.0 Mon May 27 21:46:34 CDT 2019========================================First official release of ack version 3.See "Release notes for ack 3.0.0" at the bottom of this document fordetails of what has changed between ack 2.x and ack 3.[FIXES]Fixed a failing test if Pod::Perldoc::ToTextOverstrike was beingused. (GH#202)2.999_08 Sun May 19 20:33:13 CDT 2019=====================================[ENHANCEMENTS]Consolidated the manual and FAQ into one document, accessible with --man.Cookbook.pm has been moved to dev for future use.Added SVG filetype.[FIXES]Invalid options used to cause an error message triplicate. Fixes GH #192.2.999_07 Sun Mar 31 21:54:55 CDT 2019=====================================[ENHANCEMENTS]Added --help-colors and --help-rgb-colors options to display colorsavailable for color options.Many more mutex options have been added to help users know when they'vemade a mistake. For example, it doesn't make sense to have -C to showcontext when using -f to get a file list.Overhauled the handling of mutually exclusive options. We now properlyhandle mutex options even if they are abbreviated. The actual argumentused is now shown. Fixes GH #57.2.999_06 Thu Jan 10 20:37:23 CST 2019=====================================[ENHANCEMENTS]The --tt option for Template Toolkit is now --ttml. The short versionstill works.The standalone version of ack no longer supports the --faq or --cookbookoptions, which never worked right for it anyway. Instead, --man includesthe FAQ and Cookbook.The --man option no longer uses the `perldoc` program for rendering thedocumentation. This means you'll have to pipe it into your own pager ifyou want scrolling, but it makes it much more portable.[FIXES]ack would stop finding files if there was a file named "0" in the currentdirectory. Thanks, Rob Hoelz. (GH #162)[REMOVED FUNCTIONALITY]The --lines option has been removed. (GH #167)The -u short alias for --underline has been removed. (GH #173)2.999_05 Sun Oct 21 21:37:39 CDT 2018=====================================[ENHANCEMENTS]Add -p as a shorter version of --proximate.2.999_04 Thu Sep 6 17:45:07 CDT 2018=====================================[ENHANCEMENTS]Added -P as a negation of --proximate. It is the same as --proximate=0.If you have --proximate in an .ackrc, -P can be used to cancel it.Added --ts for TypeScript.2.999_03 Fri Jan 19 11:02:46 CST 2018=====================================[ENHANCEMENTS]The check for whether we need to scan the entire file line-by-line nowreads 10M of file instead of just 100K.Removed support for the ACK_OPTIONS environment variable. Use an ackrcfile instead. If you have ACK_OPTIONS set, ack will give a warning.Lots of internal speedups.2.999_02 Mon Jan 8 23:03:42 CST 2018=====================================[ENHANCEMENTS]Added an optimization to make ack only do a line-by-line search of afile if there's a match somewhere in the file. This gives ack a 20-30%in timings of common cases.2.999_01 Mon Jan 1 22:11:17 CST 2018=====================================[ENHANCEMENTS]Added --pod as a filetype, recognizing .pod as its extension. This isPerl's POD (Plain Old Documentation) format.Added --markdown as a filetype, recognizing .md and .markdown asextensions.--pager is no longer allowed in a project .ackrc file. --match and--output are not allowed in any .ackrc file.ack 3's new features are listed below for now.[FIXES]--lines had some mutex options that were not getting checked. Now,--lines is mutex with --passthru, --match and all context options.=============================# Release notes for ack 3.0.0=============================# New featuresack 3 is a greplike tool optimized for searching large code trees.Improvements over ack 2 include:* Improved `-w` option.* `-w` option will warn if your pattern does not lend itself toword matching.* `-i`, `-I` and `--smart-case`* `--proximate=N` option* Added `--pod` and `--markdown`.* Added `GNUmakefile` to the list of makefile specs.* Added `-S` as a synonym for `--smart-case`.# Bug fixes* Column numbers were not getting colorized in the output. Added`--color-colno` option and `ACK_COLOR_COLNO` environment variable.* A pattern that wanted whitespace at the end could match thelinefeed at the end of a line. This is no longer possible.# Incompatibilities with ack 2## ack 3 requires Perl 5.10.1ack 2 only needed Perl 5.8.8. This shouldn't be a problem since 5.10.1has been out since 2009.## ack 3 no longer highlights capture groups.ack 2 would highlight your capture groups. For example, ack '(set|get)_foo_(name|id)'would highlight the `set` or `get`, and the `name` or `id`, but not thefull `set_user_id` that was matched.This feature was too confusing and has been removed. Now, the entirematching string is highlighted.## ack 3's --output allows fewer special variablesIn ack 2, you could put any kind of Perl code in the `--output`option and it would get `eval`uated at run time, which would letyou do tricky stuff like this gem from Mark Fowler(http://www.perladvent.org/2014/2014-12-21.html): ack --output='$&: @{[ eval "use LWP::Simple; 1" && length LWP::Simple::get($&) ]} bytes' \ 'https?://\S+' list.txt http://google.com/: 19529 bytes http://metacpan.org/: 7560 bytes http://www.perladvent.org/: 5562 bytesThis has been a security problem in the past, and so in ack 3 weno longer `eval` the contents of `--output`. You're now restrictedto the following variables: `$1` thru `$9`, `$_`, `$.`, `$&`, ``$` ``,`$'` and `$+`. You can also embed `\t`, `\n` and `\r` ,and `$f` as stand-in for `$filename` in `ack2 --output` .