srcly 0.1.9__tar.gz → 0.1.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {srcly-0.1.9 → srcly-0.1.11}/PKG-INFO +1 -1
- srcly-0.1.11/app/config.py +71 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/models.py +23 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/services/analysis.py +75 -0
- srcly-0.1.11/app/services/tree_sitter_analysis.py +712 -0
- srcly-0.1.11/app/static/assets/index-BjRxOY6r.css +1 -0
- srcly-0.1.11/app/static/assets/index-poSkqVZY.js +14 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/index.html +2 -2
- {srcly-0.1.9 → srcly-0.1.11}/pyproject.toml +1 -1
- srcly-0.1.9/app/config.py +0 -32
- srcly-0.1.9/app/services/tree_sitter_analysis.py +0 -187
- srcly-0.1.9/app/static/assets/index-Bb-1BUOV.js +0 -14
- srcly-0.1.9/app/static/assets/index-D-JuyTZT.css +0 -1
- {srcly-0.1.9 → srcly-0.1.11}/.gitignore +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/README.md +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/.gitignore +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/__init__.py +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/main.py +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/routers/analysis.py +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/routers/files.py +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/run.py +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/services/cache.py +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/abap-BdImnpbu.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/actionscript-3-CfeIJUat.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ada-bCR0ucgS.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/andromeeda-C-Jbm3Hp.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/angular-html-CU67Zn6k.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/angular-ts-BwZT4LLn.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/apache-Pmp26Uib.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/apex-DhZLUxFE.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/apl-dKokRX4l.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/applescript-Co6uUVPk.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ara-BRHolxvo.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/asciidoc-Dv7Oe6Be.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/asm-D_Q5rh1f.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/astro-CbQHKStN.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/aurora-x-D-2ljcwZ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/awk-DMzUqQB5.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ayu-dark-Cv9koXgw.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ballerina-BFfxhgS-.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/bat-BkioyH1T.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/beancount-k_qm7-4y.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/berry-D08WgyRC.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/bibtex-CHM0blh-.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/bicep-Bmn6On1c.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/blade-DVc8C-J4.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/bsl-BO_Y6i37.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/c-BIGW1oBm.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cadence-Bv_4Rxtq.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cairo-KRGpt6FW.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/catppuccin-frappe-DFWUc33u.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/clarity-D53aC0YG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/clojure-P80f7IUj.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cmake-D1j8_8rp.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cobol-nwyudZeR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/codeowners-Bp6g37R7.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/codeql-DsOJ9woJ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/coffee-Ch7k5sss.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/common-lisp-Cg-RD9OK.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/coq-DkFqJrB1.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cpp-CofmeUqb.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/crystal-tKQVLTB8.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/csharp-CX12Zw3r.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/css-DPfMkruS.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/csv-fuZLfV_i.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cue-D82EKSYY.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/cypher-COkxafJQ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/d-85-TOEBH.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dark-plus-eOWES_5F.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dart-CF10PKvl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dax-CEL-wOlO.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/desktop-BmXAJ9_W.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/diff-D97Zzqfu.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/docker-BcOcwvcX.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dotenv-Da5cRb03.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dracula-BzJJZx-M.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dracula-soft-BXkSAIEj.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/dream-maker-BtqSS_iP.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/edge-BkV0erSs.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/elixir-CDX3lj18.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/elm-DbKCFpqz.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/emacs-lisp-C9XAeP06.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/erb-BOJIQeun.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/erlang-DsQrWhSR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/everforest-dark-BgDCqdQA.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/everforest-light-C8M2exoo.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/fennel-BYunw83y.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/fish-BvzEVeQv.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/fluent-C4IJs8-o.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/fortran-fixed-form-BZjJHVRy.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/fortran-free-form-D22FLkUw.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/fsharp-CXgrBDvD.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gdresource-B7Tvp0Sc.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gdscript-DTMYz4Jt.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gdshader-DkwncUOv.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/genie-D0YGMca9.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gherkin-DyxjwDmM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/git-commit-F4YmCXRG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/git-rebase-r7XF79zn.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-dark-DHJKELXO.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-dark-default-Cuk6v7N8.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-light-DAi9KRSo.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-light-default-D7oLnXFd.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gleam-BspZqrRM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/glimmer-js-Rg0-pVw9.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/glimmer-ts-U6CK756n.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/glsl-DplSGwfg.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gnuplot-DdkO51Og.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/go-Dn2_MT6a.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/graphql-ChdNCCLP.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/groovy-gcz8RCvz.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hack-CaT9iCJl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/haml-B8DHNrY2.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/handlebars-BL8al0AC.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/haskell-Df6bDoY_.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/haxe-CzTSHFRz.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hcl-BWvSN4gD.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hjson-D5-asLiD.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hlsl-D3lLCCz7.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/houston-DnULxvSX.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/html-GMplVEZG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/html-derivative-BFtXZ54Q.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/http-jrhK8wxY.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hurl-irOxFIW8.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hxml-Bvhsp5Yf.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/hy-DFXneXwc.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/imba-DGztddWO.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ini-BEwlwnbL.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/java-CylS5w8V.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/javascript-wDzz0qaB.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jinja-4LBKfQ-Z.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jison-wvAkD_A8.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/json-Cp-IABpG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/json5-C9tS-k6U.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jsonc-Des-eS-w.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jsonl-DcaNXYhu.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jsonnet-DFQXde-d.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jssm-C2t-YnRu.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/jsx-g9-lgVsj.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/julia-C8NyazO9.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/kanagawa-wave-DWedfzmr.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/kdl-DV7GczEv.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/kotlin-BdnUsdx6.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/kusto-BvAqAH-y.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/laserwave-DUszq2jm.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/latex-BUKiar2Z.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/lean-DP1Csr6i.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/less-B1dDrJ26.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/light-plus-B7mTdjB0.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/liquid-DYVedYrR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/llvm-BtvRca6l.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/log-2UxHyX5q.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/logo-BtOb2qkB.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/lua-BbnMAYS6.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/luau-CXu1NL6O.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/make-CHLpvVh8.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/markdown-Cvjx9yec.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/marko-CPi9NSCl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/material-theme-D5KoaKCx.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/material-theme-darker-BfHTSMKl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/material-theme-lighter-B0m2ddpp.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/material-theme-ocean-CyktbL80.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/matlab-D7o27uSR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/mdc-DUICxH0z.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/mdx-Cmh6b_Ma.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/mermaid-DKYwYmdq.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/min-dark-CafNBF8u.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/min-light-CTRr51gU.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/mipsasm-CKIfxQSi.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/mojo-1DNp92w6.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/monokai-D4h5O-jR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/move-Bu9oaDYs.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/narrat-DRg8JJMk.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/nextflow-CUEJCptM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/nginx-DknmC5AR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/night-owl-C39BiMTA.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/nim-CVrawwO9.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/nix-BbRYJGeE.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/nord-Ddv68eIx.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/nushell-C-sUppwS.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/objective-c-DXmwc3jG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/objective-cpp-CLxacb5B.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ocaml-C0hk2d4L.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/one-dark-pro-DVMEJ2y_.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/one-light-PoHY5YXO.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/pascal-D93ZcfNL.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/perl-C0TMdlhV.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/php-CDn_0X-4.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/pkl-u5AG7uiY.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/plastic-3e1v2bzS.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/plsql-ChMvpjG-.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/po-BTJTHyun.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/poimandres-CS3Unz2-.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/polar-C0HS_06l.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/postcss-CXtECtnM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/powerquery-CEu0bR-o.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/powershell-Dpen1YoG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/prisma-Dd19v3D-.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/prolog-CbFg5uaA.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/proto-DyJlTyXw.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/pug-CGlum2m_.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/puppet-BMWR74SV.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/purescript-CklMAg4u.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/python-B6aJPvgy.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/qml-3beO22l8.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/qmldir-C8lEn-DE.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/qss-IeuSbFQv.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/r-DiinP2Uv.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/racket-BqYA7rlc.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/raku-DXvB9xmW.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/razor-WgofotgN.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/red-bN70gL4F.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/reg-C-SQnVFl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/regexp-CDVJQ6XC.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rel-C3B-1QV4.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/riscv-BM1_JUlF.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rose-pine-BHrmToEH.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rose-pine-dawn-CnK8MTSM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rose-pine-moon-NleAzG8P.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rosmsg-BJDFO7_C.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rst-B0xPkSld.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ruby-BvKwtOVI.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/rust-B1yitclQ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/sas-cz2c8ADy.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/sass-Cj5Yp3dK.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/scala-C151Ov-r.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/scheme-C98Dy4si.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/scss-OYdSNvt2.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/sdbl-DVxCFoDh.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/shaderlab-Dg9Lc6iA.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/shellscript-Yzrsuije.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/shellsession-BADoaaVG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/slack-dark-BthQWCQV.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/slack-ochin-DqwNpetd.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/smalltalk-BERRCDM3.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/snazzy-light-Bw305WKR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/solarized-dark-DXbdFlpD.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/solarized-light-L9t79GZl.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/solidity-BbcW6ACK.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/soy-Brmx7dQM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/sparql-rVzFXLq3.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/splunk-BtCnVYZw.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/sql-BLtJtn59.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ssh-config-_ykCGR6B.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/stata-BH5u7GGu.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/stylus-BEDo0Tqx.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/svelte-3Dk4HxPD.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/swift-Dg5xB15N.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/synthwave-84-CbfX1IO0.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/system-verilog-CnnmHF94.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/systemd-4A_iFExJ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/talonscript-CkByrt1z.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/tasl-QIJgUcNo.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/tcl-dwOrl1Do.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/templ-W15q3VgB.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/terraform-BETggiCN.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/tex-Cppo0RY3.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/tokyo-night-hegEt444.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/toml-vGWfd6FD.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/ts-tags-zn1MmPIZ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/tsv-B_m7g4N7.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/tsx-COt5Ahok.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/turtle-BsS91CYL.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/twig-CO9l9SDP.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/typescript-BPQ3VLAy.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/typespec-Df68jz8_.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/typst-DHCkPAjA.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/v-BcVCzyr7.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vala-CsfeWuGM.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vb-D17OF-Vu.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/verilog-BQ8w6xss.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vesper-DU1UobuO.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vhdl-CeAyd5Ju.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/viml-CJc9bBzg.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vitesse-black-Bkuqu6BP.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vitesse-dark-D0r3Knsf.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vitesse-light-CVO1_9PV.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vue-CCoi5OLL.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vue-html-DAAvJJDi.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vue-vine-_Ih-lPRR.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/vyper-CDx5xZoG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wasm-CG6Dc4jp.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wasm-MzD3tlZU.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wenyan-BV7otONQ.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wgsl-Dx-B1_4e.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wikitext-BhOHFoWU.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wit-5i3qLPDT.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/wolfram-lXgVvXCa.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/xml-sdJ4AIDG.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/xsl-CtQFsRM5.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/yaml-Buea-lGh.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/zenscript-DVFEvuxE.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/assets/zig-VOosw3JB.js +0 -0
- {srcly-0.1.9 → srcly-0.1.11}/app/static/vite.svg +0 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
from typing import Set
|
|
2
|
+
|
|
3
|
+
IGNORE_DIRS: Set[str] = {
|
|
4
|
+
".git",
|
|
5
|
+
"node_modules",
|
|
6
|
+
"venv",
|
|
7
|
+
".venv",
|
|
8
|
+
"__pycache__",
|
|
9
|
+
"dist",
|
|
10
|
+
"build",
|
|
11
|
+
".next",
|
|
12
|
+
"coverage",
|
|
13
|
+
".idea",
|
|
14
|
+
".vscode",
|
|
15
|
+
"target",
|
|
16
|
+
"out",
|
|
17
|
+
"android",
|
|
18
|
+
"ios",
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
IGNORE_FILES: Set[str] = {
|
|
22
|
+
"package-lock.json",
|
|
23
|
+
"yarn.lock",
|
|
24
|
+
"pnpm-lock.yaml",
|
|
25
|
+
"cargo.lock",
|
|
26
|
+
"poetry.lock",
|
|
27
|
+
"Gemfile.lock",
|
|
28
|
+
"composer.lock",
|
|
29
|
+
"mix.lock",
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
IGNORE_EXTENSIONS: Set[str] = {
|
|
33
|
+
".png",
|
|
34
|
+
".jpg",
|
|
35
|
+
".jpeg",
|
|
36
|
+
".gif",
|
|
37
|
+
".svg",
|
|
38
|
+
".ico",
|
|
39
|
+
".pdf",
|
|
40
|
+
".zip",
|
|
41
|
+
".tar",
|
|
42
|
+
".gz",
|
|
43
|
+
".map",
|
|
44
|
+
".min.js",
|
|
45
|
+
".min.css",
|
|
46
|
+
".json",
|
|
47
|
+
".xml",
|
|
48
|
+
".txt",
|
|
49
|
+
".ttf",
|
|
50
|
+
".woff",
|
|
51
|
+
".woff2",
|
|
52
|
+
".eot",
|
|
53
|
+
".otf",
|
|
54
|
+
".mp4",
|
|
55
|
+
".mp3",
|
|
56
|
+
".wav",
|
|
57
|
+
".webm",
|
|
58
|
+
".ogg",
|
|
59
|
+
".exe",
|
|
60
|
+
".dll",
|
|
61
|
+
".so",
|
|
62
|
+
".dylib",
|
|
63
|
+
".bin",
|
|
64
|
+
".iso",
|
|
65
|
+
".dmg",
|
|
66
|
+
".pkg",
|
|
67
|
+
".deb",
|
|
68
|
+
".rpm",
|
|
69
|
+
".csv",
|
|
70
|
+
".lock",
|
|
71
|
+
}
|
|
@@ -11,6 +11,29 @@ class Metrics(BaseModel):
|
|
|
11
11
|
gitignored_count: int = 0
|
|
12
12
|
file_size: int = 0
|
|
13
13
|
file_count: int = 0
|
|
14
|
+
|
|
15
|
+
# New metrics
|
|
16
|
+
comment_lines: int = 0
|
|
17
|
+
comment_density: float = 0.0
|
|
18
|
+
max_nesting_depth: int = 0
|
|
19
|
+
average_function_length: float = 0.0
|
|
20
|
+
parameter_count: int = 0
|
|
21
|
+
todo_count: int = 0
|
|
22
|
+
classes_count: int = 0
|
|
23
|
+
|
|
24
|
+
# TS/TSX Specific Metrics
|
|
25
|
+
tsx_nesting_depth: int = 0
|
|
26
|
+
tsx_render_branching_count: int = 0
|
|
27
|
+
tsx_react_use_effect_count: int = 0
|
|
28
|
+
tsx_anonymous_handler_count: int = 0
|
|
29
|
+
tsx_prop_count: int = 0
|
|
30
|
+
ts_any_usage_count: int = 0
|
|
31
|
+
ts_ignore_count: int = 0
|
|
32
|
+
ts_import_coupling_count: int = 0
|
|
33
|
+
tsx_hardcoded_string_volume: int = 0
|
|
34
|
+
tsx_duplicated_string_count: int = 0
|
|
35
|
+
ts_type_interface_count: int = 0
|
|
36
|
+
ts_export_count: int = 0
|
|
14
37
|
|
|
15
38
|
class Node(BaseModel):
|
|
16
39
|
name: str
|
|
@@ -36,7 +36,34 @@ def attach_file_metrics(node: Node, file_info) -> None:
|
|
|
36
36
|
node.metrics.loc = total_loc
|
|
37
37
|
node.metrics.complexity = file_info.average_cyclomatic_complexity
|
|
38
38
|
node.metrics.function_count = len(file_info.function_list)
|
|
39
|
+
node.metrics.function_count = len(file_info.function_list)
|
|
39
40
|
node.metrics.file_count = 1
|
|
41
|
+
# TS/TSX-specific metrics are only available for TypeScript/TSX files analyzed
|
|
42
|
+
# by the TreeSitterAnalyzer. Plain lizard FileInformation objects (e.g. for
|
|
43
|
+
# Python or other languages) won't have these attributes, so guard them.
|
|
44
|
+
if hasattr(file_info, "tsx_nesting_depth"):
|
|
45
|
+
node.metrics.tsx_nesting_depth = file_info.tsx_nesting_depth
|
|
46
|
+
node.metrics.tsx_render_branching_count = file_info.tsx_render_branching_count
|
|
47
|
+
node.metrics.tsx_react_use_effect_count = file_info.tsx_react_use_effect_count
|
|
48
|
+
node.metrics.tsx_anonymous_handler_count = file_info.tsx_anonymous_handler_count
|
|
49
|
+
node.metrics.tsx_prop_count = file_info.tsx_prop_count
|
|
50
|
+
node.metrics.ts_any_usage_count = file_info.ts_any_usage_count
|
|
51
|
+
node.metrics.ts_ignore_count = file_info.ts_ignore_count
|
|
52
|
+
node.metrics.ts_import_coupling_count = file_info.ts_import_coupling_count
|
|
53
|
+
node.metrics.tsx_hardcoded_string_volume = file_info.tsx_hardcoded_string_volume
|
|
54
|
+
node.metrics.tsx_duplicated_string_count = file_info.tsx_duplicated_string_count
|
|
55
|
+
node.metrics.ts_type_interface_count = file_info.ts_type_interface_count
|
|
56
|
+
node.metrics.ts_export_count = file_info.ts_export_count
|
|
57
|
+
|
|
58
|
+
# New metrics
|
|
59
|
+
if hasattr(file_info, 'comment_lines'):
|
|
60
|
+
node.metrics.comment_lines = file_info.comment_lines
|
|
61
|
+
node.metrics.comment_density = file_info.comment_density
|
|
62
|
+
node.metrics.max_nesting_depth = file_info.max_nesting_depth
|
|
63
|
+
node.metrics.average_function_length = file_info.average_function_length
|
|
64
|
+
node.metrics.parameter_count = file_info.parameter_count
|
|
65
|
+
node.metrics.todo_count = file_info.todo_count
|
|
66
|
+
node.metrics.classes_count = file_info.classes_count
|
|
40
67
|
|
|
41
68
|
# Set start/end line for the file (approximate, 1 to total lines)
|
|
42
69
|
# We don't strictly have this from lizard always, but we can infer or leave 0.
|
|
@@ -48,8 +75,20 @@ def attach_file_metrics(node: Node, file_info) -> None:
|
|
|
48
75
|
def convert_function(func, parent_path: str) -> Node:
|
|
49
76
|
func_node = create_node(func.name, "function", f"{parent_path}::{func.name}")
|
|
50
77
|
func_node.metrics.loc = func.nloc
|
|
78
|
+
func_node.metrics.loc = func.nloc
|
|
51
79
|
func_node.metrics.complexity = func.cyclomatic_complexity
|
|
52
80
|
|
|
81
|
+
# Safely get new metrics (Lizard functions won't have these)
|
|
82
|
+
func_node.metrics.parameter_count = getattr(func, 'parameter_count', 0)
|
|
83
|
+
func_node.metrics.max_nesting_depth = getattr(func, 'max_nesting_depth', 0)
|
|
84
|
+
func_node.metrics.comment_lines = getattr(func, 'comment_lines', 0)
|
|
85
|
+
func_node.metrics.todo_count = getattr(func, 'todo_count', 0)
|
|
86
|
+
func_node.metrics.ts_type_interface_count = getattr(func, 'ts_type_interface_count', 0)
|
|
87
|
+
|
|
88
|
+
# Density for function
|
|
89
|
+
comment_lines = getattr(func, 'comment_lines', 0)
|
|
90
|
+
func_node.metrics.comment_density = comment_lines / func.nloc if func.nloc > 0 else 0.0
|
|
91
|
+
|
|
53
92
|
if hasattr(func, 'start_line'):
|
|
54
93
|
func_node.start_line = func.start_line
|
|
55
94
|
if hasattr(func, 'end_line'):
|
|
@@ -177,12 +216,38 @@ def aggregate_metrics(node: Node) -> Metrics:
|
|
|
177
216
|
total_loc = 0
|
|
178
217
|
max_complexity = 0
|
|
179
218
|
total_funcs = 0
|
|
219
|
+
|
|
220
|
+
# New metrics aggregation
|
|
221
|
+
total_comment_lines = 0
|
|
222
|
+
max_nesting_depth = 0
|
|
223
|
+
total_parameter_count = 0
|
|
224
|
+
total_todo_count = 0
|
|
225
|
+
total_classes_count = 0
|
|
226
|
+
total_type_interface_count = 0
|
|
227
|
+
total_export_count = 0
|
|
228
|
+
|
|
229
|
+
# For average function length, we need total function loc and total functions (already have total_funcs)
|
|
230
|
+
# But we need to sum function locs from children.
|
|
231
|
+
# Let's track total function loc separately if we want to be precise,
|
|
232
|
+
# OR we can just use the child's average * child's function count.
|
|
233
|
+
total_function_loc = 0
|
|
180
234
|
|
|
181
235
|
for child in node.children:
|
|
182
236
|
child_metrics = aggregate_metrics(child)
|
|
183
237
|
total_loc += child_metrics.loc
|
|
184
238
|
max_complexity = max(max_complexity, child_metrics.complexity)
|
|
185
239
|
total_funcs += child_metrics.function_count
|
|
240
|
+
|
|
241
|
+
total_comment_lines += child_metrics.comment_lines
|
|
242
|
+
max_nesting_depth = max(max_nesting_depth, child_metrics.max_nesting_depth)
|
|
243
|
+
total_parameter_count += child_metrics.parameter_count
|
|
244
|
+
total_todo_count += child_metrics.todo_count
|
|
245
|
+
total_classes_count += child_metrics.classes_count
|
|
246
|
+
total_type_interface_count += child_metrics.ts_type_interface_count
|
|
247
|
+
total_export_count += child_metrics.ts_export_count
|
|
248
|
+
|
|
249
|
+
# Reconstruct total function loc from average * count
|
|
250
|
+
total_function_loc += (child_metrics.average_function_length * child_metrics.function_count)
|
|
186
251
|
|
|
187
252
|
# For Folders: Sum of children
|
|
188
253
|
# For Files: We trust the attach_file_metrics logic (which includes __misc__)
|
|
@@ -196,6 +261,16 @@ def aggregate_metrics(node: Node) -> Metrics:
|
|
|
196
261
|
node.metrics.gitignored_count = sum(child.metrics.gitignored_count for child in node.children)
|
|
197
262
|
node.metrics.file_size = sum(child.metrics.file_size for child in node.children)
|
|
198
263
|
node.metrics.file_count = sum(child.metrics.file_count for child in node.children)
|
|
264
|
+
|
|
265
|
+
node.metrics.comment_lines = total_comment_lines
|
|
266
|
+
node.metrics.comment_density = total_comment_lines / total_loc if total_loc > 0 else 0.0
|
|
267
|
+
node.metrics.max_nesting_depth = max_nesting_depth
|
|
268
|
+
node.metrics.parameter_count = total_parameter_count
|
|
269
|
+
node.metrics.todo_count = total_todo_count
|
|
270
|
+
node.metrics.classes_count = total_classes_count
|
|
271
|
+
node.metrics.average_function_length = total_function_loc / total_funcs if total_funcs > 0 else 0.0
|
|
272
|
+
node.metrics.ts_type_interface_count = total_type_interface_count
|
|
273
|
+
node.metrics.ts_export_count = total_export_count
|
|
199
274
|
|
|
200
275
|
return node.metrics
|
|
201
276
|
|