[CONFUSING BEHAVIOR & UPCOMING CHANGES]
The -w has a confusing behavior that it's had since back to ack 1.x
that will be changing in the future. It's not changing in this
version, but this is a heads-up that it's coming.
ack -w is "match a whole word", and ack does this by putting turning
your PATTERN into \bPATTERN\b. So "ack -w foo" effectively becomes
"ack \bfoo\b". Handy.
The problem is that ack doesn't put a \b before PATTERN if it begins
with a non-word character, and won't put a \b after PATTERN if it
ends with a non-word character.
The problem is that if you're searching for "fool" or "foot", but
only as a word, and you do "ack -w foo[lt]" or "ack -w (fool|foot)",
you'll get matches for "football and foolish" which certainly should
not match if you're using -w.
[ENHANCEMENTS]
Include .cljs, .cljc and .edn files with the --clojure filetype. Thanks,
Austin Chamberlin.
Added .xsd to the --xml filetype. Thanks, Nick Morrott.
Added support for Swift language. Thanks, Nikolaj Schumacher. (GH #512)
The MSYS2 project is now seen as Windows. Thanks, Ray Donnelly. (GH #450)
Expand the definition of OCaml files. Thanks, Marek Kubica. (GH #511)
Add support for Groovy Server Pages. Thanks, Ethan Mallove. (GH #469)
The JSP filetype (--jsp) now recognizes .jspf files. Thanks, Sebastien
Feugere. (GH #586)
Many optimizations and code cleanups. Thanks, Stephan Hohe.
Added --hpp option for C++ header files. Thankis, Steffen Jaeckel.
ack now supports --ignore-dir=match:.... Thanks, Ailin Nemui! (GitHub ticket #42)
ack also supports --ignore-dir=ext:..., and --noignore-dir supports match/ext as well
[INTERNALS]
Added test to test --output. Thanks, Varadinsky! (GH #587, GH #590)
Added test to make sure subdirs of target subdirs are ignored if
--ignore-dir applies to them. Thanks, Pete Houston. (GH #570)
[DOCUMENTATION]
Expanded the explanation of how the -w flag works. Thanks, Ed Avis.
(GH #585)
[FIXES]
Reverted an optimization to make \s work properly again. (GH #572,
GH #571, GH #562, GH #491, GH #498)
Fixed an out-of-date FAQ entry. Thanks, Jakub Wilk. (GH #580)
The -l and -c flags would sometimes return inaccurate results due to
a bug introduced in 2.14. Thanks to Elliot Shank for the report! (GH #491)
Behavior when using newlines in a search was inconsistent. Thanks to
Yves Chevallier for the report! (GH #522)
Add minimal requirement of Getopt::Long 2.38, not 2.35, for GetOptionsFromString.
Don't ignore directories that are specified as command line targets (GH #524)
Fix a bug where a regular expression that matches the empty string could cause ack
to go into an infinite loop (GH #542)