Changelog of @hackage/fast-tags 2.0.2

2.0.2

  • fixes for ghc 9.0 and 9.2, thanks to @sergv and @ozkutuk

2.0.1

  • Add support to qualified_tags.py for tag preview.

  • support record pattern synonyms

  • Reduce false positives from Template Haskell

2.0.0

  • Added example git hooks in tools/ to incrementally update tags across checkouts, pulls, rebases. There is now no reason to generate tags from scratch, except to clean out changes that this misses.

  • accept multiple --src-prefix flags, in case your haskell repo has multiple roots, but no cabal files

  • add --cabal flag, which parses .cabal files and generates tags for the package

  • collect tags from Alex and Happy files

  • collect tags from some hsc2hs directives

  • collect tags from #define and #let constructs

  • lexer is now almost twice as fast

  • improved line number precision when analysing Literal Haskell

1.5.0

  • many small accuracy fixes from @sergv, see https://github.com/elaforge/fast-tags/pull/40

  • fix a bug with emacs tags where I suppressed all adjacent tags, not just ones with the same name

  • change emacs output to a hopefully more compatible form

  • add --exclude flag

1.4.2

  • add --src-prefix flag

Minor UI cleanups:

  • don't read filenames from stdin on no arguments, use - for that

  • don't automatically read contents of directories

  • don't automatically recurse into any directories starting with dot

  • don't follow symlinks by default when -R is given

Make qualified tags work better:

  • qualified_tag.py: strip leading and trailing dots

  • make qualified_tag.py retry qualified tags without qualification

1.4.1

  • Ghc 8.4.1 compatibility.

1.4

  • Add qualified_tag.py, which is more clever about following qualified symbols, without modifying iskeyword. I also added --fully_qualified to support it. Now renamed imports such as import A.B.C as D should chase D.x to A.B.C.x. Thanks to JonnyRa in https://github.com/elaforge/fast-tags/issues/33 for the inspiration.

1.3

  • A tag will suppress any other tags with the same name within 2 lines. This should prevent multiple tag matches for things like data X = X. Currently the 2 is not configurable, but could be easily enough if someone wanted that.

  • Lock stderr when writing so warnings don't get scrambled.

  • A --qualified flag which emits tags qualified by module name. There's an example vimrc line that can use that without having to permanently modify iskeyword.

  • Tags should be always sorted now, instead of being inconsistently-but-mostly-sorted as they were before. I replaced complicated code trying to keep the output sorted with one sort at the end. It's simpler and doesn't seem to be measurably slower.

1.2.1

  • Minor updates to cabal file, comments, etc.

1.2

1.1.2:

  • Implement --no-module-tags command line parameter to optionally avoid tagging modules.

1.1.1:

  • fix 'format' output for vim

1.1:

  • Decode UTF8 leniently, so non-UTF8 will no longer cause a crash. Removed the --ignore-encoding-errors flag, since that's the default behaviour now.

1.0:

  • Merged a whole bunch of patches from Sergey Vinokurov. Copy paste from https://github.com/elaforge/fast-tags/pull/6:

  • recognize more syntactic constructs (consider tests as specification of what's handled)

  • add more tests

  • use tasty to organize tests

  • ability to produce emacs tags

  • handling of literate files

  • new mode to recursively traverse directory tree and search for haskell files

  • optionally ignore encoding errors during reading and skip offending files

  • ability to read \n-separated or \0-separated list of files from stdin and blazing-fast speed of tag generation is presevred

0.0.6:

  • fix bug where class context in a class's methods would be confused for the context of the class itself

0.0.5:

  • Tags with the same name are sorted by their type: Function, Type, Constructor, Class, Module.

0.0.4:

  • Fixed bug that prevented old tags from being filtered out.

0.0.3:

  • Lots of speed ups, especially when given lots of files at once.

  • Support for type families and GADTs.

  • Support infix operators, multiple declarations per line, and fix various other bugs that missed or gave bad tags.