You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Author ownership: --author-ownership on ccsh analyse and gitlogparser repo-scan adds each person's share of
each file's lines to the map, under an invented colour and animal name, with co-authors sharing a line equally.
Real author names: --with-author-names writes real names instead of invented ones into author ownership, and warns
clearly that the map now holds personal data.
Commit changes: --commit-changes-since on ccsh analyse and gitlogparser repo-scan adds what each commit since
that day changed in each file to the map, with the commit's date and size.
Code and comment lines for about 300 languages: rawtextparser adds rloc and comment_lines to every file
whose language the code counter tokei knows, counted the same way as in the Unified Parser.
VBA, VB6 and Access: unifiedparser measures exported VBA modules and classes from Access, Excel and Word, VB6
forms, the layouts of Access forms and reports with the logic and controls they hold, and Access macros; domainlanguageparser reads their domain words, and dependencyparser draws the dependencies between their
modules, the forms and reports with their layouts, the macros, and the Access queries exported as SQL, with the
forms, queries, macros and VBA functions those name.
Access export: a macro you import into an Access application exports its modules, forms, reports, macros and
queries into a folder ccsh maps, as the new guide for Access and VBA applications describes.
Changed
Faster start in large projects: the parsers start analysing sooner when a project holds large ignored folders
such as node_modules or build output, and the dependency parser no longer pauses along the way, most noticeably
in Docker.
Faster analysis of large projects: ccsh analyse maps a project with tens of thousands of files in a fraction of
the time and with less memory, most of all one with many packages.
Removed
ABL: the parsers no longer read OpenEdge ABL (Progress) files.
Fixed 🐞
Lines of code in Objective-C, PHP and Ruby: unifiedparser no longer counts a blank line after an #include, or a
line past the end of the file, as code.
Comment lines in SQL: unifiedparser counts a line of dashes without text, such as --, as a comment instead of
code.
Comments after a missing semicolon: unifiedparser no longer counts a comment line as code where the code before
it lacks a semicolon, as after a C or C++ macro call.
Raw strings in Rust: unifiedparser counts the line that closes a raw string, such as "#, as code.
Dependencies into ignored folders: the dependency parser no longer resolves an import or include to a file that .gitignore or the exclude patterns leave out, so the edge goes to the file on the map.
Large HTML files: the domain language parser no longer hangs on an HTML file with much text between its tags.
Long dependency cycles: the dependency parser no longer crashes on a cycle that runs through thousands of files
or packages.
SQL joins in parentheses: the dependency parser links a query to every table of a join written in parentheses,
not only to the first and the last.
Crafted JSON files: ccsh no longer stalls on a JSON file that holds an extremely long number.
Default imports by name: the dependency parser links import { default as X } in JavaScript and TypeScript to the
default export, as it does import X.
Exception groups in Python: unifiedparser counts an except* handler toward complexity, as it does an except.
One-line Bash functions: unifiedparser counts the code line of a function whose body is an arithmetic command,
such as f() (( $1 > 0 )), in the lines of code per function.