Skip to content

Analysis release 2.4.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 14:38
· 3 commits to main since this release

Added 🚀

  • 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.