- Split --export flag into --export and --export-path to avoid confusion and subtle command-line syntax errors.
- Support for extracting javascript blocks from vue files.
- Print a newline when exiting from line-mode via interrupt.
- Support for Ruby 3.x "def foo = ..." method syntax (#192).
- Don't generate conflicting
read
anddefs
entries for class and module definitions (#176).
Improvements:
- Support per-directory
.starscope.json
config (#181). - Support abbreviated special commands in line mode (e.g.
!u
,!s
,!q
). - Properly support non-ASCII identifiers in Golang.
- Tiny performance improvements.
Bug Fixes:
- Strip non-ASCII characters from cscope export to avoid cscope crashes (#182).
Misc:
- Drop support for ancient Marshall-format databases.
- Drop support for several old Ruby versions. 2.6 is now the oldest supported.
- Dependency upgrades.
- Documentation improvements.
- Use binary mode for file writes to fix compatibility on MS Windows (#171).
- Make sure the database is still valid when a parse exception happens (#173).
- Fix handling of
__ENCODING__
literals in ruby parser (#174). - Update some dependencies.
- Be more lenient parsing ERB files: accept some of Erubi's expanded syntax.
- Drop support for ruby 1.9.3.
- Update some dependencies.
Bug Fixes:
- Hotfix for missing
require
preventing export in v1.5.4.
Improvements:
- When dumping file metadata, don't include the file contents.
Bug Fixes:
- Fix parsing ruby files with invalidly-encoded literals (#160).
- Fix exporting ctags files to different output directories (#163).
Improvements:
- Skip minified javascript files.
Bug Fixes:
- Fix javascript parsing of
require
calls that are actually methods and not CommonJS-style imports (#158).
Misc:
- Relax some dependencies to handle e.g. the upcoming parser release for Ruby 2.3 (#149).
- Rename the
Go
extractor toGolang
so that it is named consistently everywhere (#143).
Improvements:
- Support CommonJS require syntax and ES6 import syntax in JavaScript (#146).
Bug Fixes:
- Fix handling of Ctrl-C in line-mode to exit cleanly instead of crashing.
- Fix handling of braceless fat-arrow methods in JavaScript (#147).
New Features:
- Javascript support, including basic ES6/ES7 and JSX (via Babel).
- Implemented
--force-update
flag to rescan all files even if they apparently haven't changed (#139). - Added support for a shared configuration file in
~/starscope.json
(#140). This is primarily useful for commonly excluded files (e.g.cscope.out
).
Bug Fixes:
- Fixed a really weird corruption in certain rare cscope export cases (#129).
Misc:
- Drop support for ruby 1.8.7, it was getting annoying and is long unsupported.
Misc:
- Minor code style cleanups and documentation improvements.
- Bumped a few dependencies.
- Official support for ruby 2.2 although it already worked.
New Features:
- Implement support for files with multiple nested languages (#61).
- Implement support for extracting ruby inside ERB files (#120).
Bug Fixes:
- Correctly handle the removal of language extractors (#122).
Misc:
- Preliminary use of Rubocop for more consistent code style.
- Document the fact that
!
can't be used at the beginning of table names.
Bug Fixes:
- Escape '/' characters in the line 'pattern' component of ctags records, since otherwise they terminate that component when it is read as a vim search command.
Improvements:
- Recognize rake tasks as ruby files.
Bug Fixes:
- Forcefully require latest ruby parser gem to pull in the fix for whitequark/parser#186
- Wrap reported exceptions in quotes for clarity.
Bug Fixes:
- Fix parsing of certain queries containing
:
. - Fix alignment of summaries on large DBs.
New Features:
- Give
*
as the table name in order to query all tables at once (#58). - Specify filters for your queries for example
lang:ruby,calls,new
(#24). - Ruby: Recognize variables and symbols outside of assignments, available in
the new
reads
andsym
tables (#102). - Cscope: export 'unmarked' or generic cscope tokens, providing a much richer integration with cscope's "find this C symbol" (#60).
Bug Fixes:
- Simplify query logic to match user expectations (#91).
- Cscope: fix export of inline function definitions.
- DB: fix saving of upconverted databases in rare circumstances.
Improvements:
- You can now specify
--export
multiple times with different formats in a single run. - Language extractors are now individually versioned. When an extractor is upgraded, files it owns will be automatically re-parsed.
- Deduplicated some metadata, shrinking database size. This comes with a related reduction in read/write time and memory usage.
Bug Fixes:
- Proper handling of golang string literal escapes.
Misc:
- Lots of internal refactoring and test suite improvements for better maintainability going forward.
Bug Fixes:
- Don't crash exporting to cscope if tokens overlap.
- In golang, don't parse inside string literals.
New Features:
- Export of ctags
language
tag (needed forYouCompleteMe
support).
Bug Fixes:
- In ruby, correctly report calls to functions such as
foo=
as assignments tofoo
.
Bug Fixes:
- Fixed cscope export when the string for a token appeared multiple times on
the same line, for example the function call
go("go")
. - Fixed cscope export of function calls made from the global scope.
- Fixed cscope export of functions that end in punctuation (e.g.
include?
) - Fixed golang parsing of global function calls.
- Fixed crash in line-mode when pressing
<return>
with no input.
Improvements:
- Optimized and refactored database update path. Now much simpler and about 8% faster.
- Documented the database format and language API. Added a user guide which is
much more complete than the simpler output of the
--help
flag.
Misc:
- Rename --no-progress to --quiet, and make sure all operations provide some indication of success/failure except when quieted.
- Dynamically load language extractors, so new ones can be dropped in with no other code changes.
Improvements:
- Optimized deleting stale records.
Improvements:
- Optimized extracting lines from parsed files.
Misc:
- Code cleanup.
Bug Fixes:
- Fix an exception when updating the db from line mode.
- Make sure to mark the db as changed when a source file has been deleted
Misc:
- A few trivial tweaks and optimizations.
- Store the application version in the db metadata for more fine-grained forwards-compatibility.
- Permit exporting from line mode.
Bug Fixes:
- Stupid forgot-to-change-the-gemspec to actually permit installing on Ruby 1.8.7!
New Features:
- Preliminary export of a few advanced ctags annotations
- New -x flag to exclude files from scan (such as compiled .o files)
- New --verbose flag for additional output
Bug Fixes:
- Correctly write out migrated databases
- Be compatible with ruby 1.8 everywhere
- Fix golang parsing untyped "var" declarations
- Fix golang parsing multi-line literals
- Record assignments to ruby constants as definitions
- Fix exporting to cscope when scanned files contain invalid unicode
Improvements:
- Faster file-type matching
- Reworked option flags:
- Merged -r and -w into -f
- Split -n into --no-read, --no-write, --no-update
- New, more flexible database format
- Substantially improved searching/matching logic
- Miscellanious others via updated dependencies
Improvements:
- Import new ruby parser version and make necessary changes so that Starscope now runs on older Ruby versions (1.9.2 and 1.8.7)
Bug Fixes:
- Work around what appears to be a bug in time comparison in certain Ruby version by casting times to ints before comparing them. Fixes cases where files were being rescanned even when they hadn't changed.
Bug Fixes:
- Correctly handle empty files in ruby parser (#12)
Improvements:
- Much better recognition and parsing of definitions and assignments to variables and constants in golang code (fixes #11 among others).
Infrastructure:
- Test suite and continuous integration (via Minitest and Travis-CI).
- Use github's tickets instead of a TODO file.
Improvements:
- Better recognition of golang function calls.
New Features:
- Add --no-progress option to hide progress-bar.
Misc:
- Explicitly print "No results found" to avoid mysterious empty output.
- Recognize ruby files with a #!ruby line but no .rb suffix.
- Help output now fits in 80-column terminal.
New Features:
- Export to cscope databases.
- Regexes are now accepted in the last ('key') term of a query
Bug Fixes:
- Don't match Golang function names ending with a dot.
Misc:
- Dumping tables now sorts by key.
- Various bugfixes and improvements via updated dependencies.
Misc:
- New upstream ruby parser release.
Bug Fixes:
- Ensure key is always a symbol (fixes database updates for Go files).
New Features:
- Support for Google's go (AKA golang).
New Features:
- Progress bar when building or updating database.
Bug Fixes:
- Handle the case when a ruby file produces a nil parse tree.
- Many misc fixes.
Internals:
- Another new version of the ruby parser.
- Replace the default JSON module with Oj, which is more than twice as fast for large databases.
- Misc optimizations.
Bug Fixes:
- Correctly format table dumps.
- Correctly generate
defs
table entries for static methods (Bug #1)
Misc:
- Specify license in gemspec.
Interface:
- Table names are now consistently conjugated (def -> defs, assign -> assigns)
- The
starscope
binary no longer has an unnecessary .rb suffix.
Internals:
- Update to a new version of the ruby parser that is significantly faster.
- Database is now stored as gzipped JSON for better portability
New Features:
- Export to ctags files
Improvements:
- GNU Readline behaviour in line-mode
- Additional commands available in line-mode: !dump, !help, !version
- Prints the relevant line in query mode
New Features:
- Line-mode (use the
-l
flag)
Other Improvements:
- Better error handling
- General polish