Repository navigation
Added 🚀
-
Dependencies in simplecc.sh: the map
simplecc.shwrites, in the Docker image too, carries the project's
dependencies for the experimental dependency view. -
ccsh dependencyparser(experimental) extracts a project's dependency graph. A port of DependaCharta's
analysis: tree-sitter dependency extraction for Java, Kotlin, C#, C/C++, Go, Python, PHP, TypeScript, JavaScript,
Vue, Delphi and Rust, plus cycle detection and levelization. The result lands in thedependencylens — a
file-to-file edge per dependency, carrying its weight (dependencies), whether it takes part in a cycle
(isCyclic) and whether it runs against the architectural flow (isPointingUpwards), plus the level every file and
folder sits on. Per-fileoutgoing_dependenciesandincoming_dependenciesgo into the metrics lens. Imports
resolve through each language's own rules plus tsconfig/jsconfig path aliases, bundler aliases and Module Federation
remotes. Test files are excluded by default (--include-testsopts back in), because a test depends on everything
it exercises and nothing depends on it, which moves every level and cycle.--omit-graph-analysisskips cycles and
levels for a repository where they do not finish, and--file-timeoutbounds a single file's parse. -
The
dependencylens carries the whole graph, not just edges: every edge says whether it takes part in a
cycle and whether it runs against the architectural flow, and every file and folder carries its level. -
Declarations and packages in the dependency graph:
ccsh dependencyparseralso writes every declaration
with its kind, language and package under the file it is declared in, and the dependencies between declarations
with how each one is used.
Changed
-
One file scanner for
domainlanguageparseranddependencyparser. Both walked the tree with their own copy
of the same scanner; the shared one lives next to the gitignore handling inAnalyserInterface. For
domainlanguageparserthis means-e/--excludeand-ibf/--include-build-foldersnow work as in every other
parser (they were accepted and ignored), the common build folders are excluded when the root has no.gitignore
(unless-ibfis given), minified bundles (*.min.js,*.bundle.js) are skipped, test directories are judged by
the path inside the project rather than the absolute one, and files arrive in path order. -
ccsh dependachartaimportis deprecated.ccsh dependencyparserruns DependaCharta's analysis on the source
itself and now emits everything the importer receives and more — declaration kinds, levels, cycles and upward flags,
at both file and declaration granularity — where the importer flattens all of it into edge and node attributes. It
also declares.dc.jsonwhile DependaCharta emits.cg.json, so it never matched real output. The command still
works and now says so on every run; it will be removed. -
Much smaller domain files: the domain parser records a word once, on the file it came from, instead of
repeating it on every folder above it, and writes tf-idf scores to three decimals — a parsed project takes
about a third of the space it did, and the visualization adds a folder's words up as you open it.
Fixed 🐞
-
./gradlew cleanno longer breaks every following ktlint task. ktlint-gradle writes
intermediates/ktLint/reporters.binbut never registers it as an output ofloadKtlintReporters, so
cleandeleted the file while the task stayedUP-TO-DATE, and every ktlint task then failed with
"specifies file ... which doesn't exist". The build now declares the output, socleaninvalidates its
producer. CI never saw this because it builds fresh checkouts rather than cleaning an existing one. -
FileExtensionrecognizes.ctsand.kts. The TypeScript entry listedctswithout its leading dot, so no
.ctsfile ever matched, and Kotlin script files had no entry at all. Both are now analysed byunifiedparser
as well.
Chore 👨💻 👩💻
- TreeSitterExcavationSite is now a module of the analysis build instead of an external library. The code of
v0.12.0moved intoanalysis/treeSitterExcavationSiteunchanged, so the three parsers that use it compile
againstproject(":treeSitterExcavationSite")rather than a JitPack artifact and its grammar versions are
pinned in the analysis version catalog. Parser output is byte-identical.