tree-sitter-analyzer 1.8.3__tar.gz → 1.9.0__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.
Potentially problematic release.
This version of tree-sitter-analyzer might be problematic. Click here for more details.
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/CHANGELOG.md +65 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/PKG-INFO +19 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/README.md +18 -4
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/README_ja.md +14 -4
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/README_zh.md +17 -4
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/collect_project_metrics.py +80 -60
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/debug_async_test.py +23 -19
- tree_sitter_analyzer-1.9.0/docs/analysis/technical_debt_analysis_2025-10-16.md +111 -0
- tree_sitter_analyzer-1.9.0/docs/debugging_guide.md +247 -0
- tree_sitter_analyzer-1.9.0/docs/troubleshooting_guide.md +354 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/cache_demo.py +2 -2
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/css_analysis_demo.py +219 -154
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/file_output_demo.py +61 -48
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/file_output_factory_demo.py +80 -56
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/html_analysis_demo.py +90 -81
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/javascript_analysis_demo.py +1 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/suppress_output_demo.py +57 -52
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/pyproject.toml +2 -2
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/run_regression_tests.py +139 -93
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/gitflow_release_automation.py +1 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/run_phase7_integration_tests.py +109 -97
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/sync_version.py +6 -2
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/update_readme_stats.py +95 -98
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/test_emergency_fix.py +33 -23
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/test_fixes.py +56 -39
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/api.py +4 -4
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/argument_validator.py +29 -17
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/advanced_command.py +7 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/structure_command.py +7 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/summary_command.py +10 -6
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/table_command.py +8 -7
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/info_commands.py +1 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli_main.py +3 -2
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/analysis_engine.py +5 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/cache_service.py +3 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/query.py +17 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/query_service.py +1 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/encoding_utils.py +3 -3
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/exceptions.py +61 -50
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/file_handler.py +3 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/base_formatter.py +10 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/formatter_registry.py +83 -68
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/html_formatter.py +90 -54
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/javascript_formatter.py +21 -16
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/language_formatter_factory.py +7 -6
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/markdown_formatter.py +247 -124
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/python_formatter.py +61 -38
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/typescript_formatter.py +113 -45
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/interfaces/mcp_server.py +2 -2
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/language_detector.py +6 -6
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/language_loader.py +3 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/css_plugin.py +120 -61
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/html_plugin.py +159 -62
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/java_plugin.py +42 -34
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/javascript_plugin.py +59 -30
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/markdown_plugin.py +402 -368
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/python_plugin.py +111 -64
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/typescript_plugin.py +241 -132
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/server.py +22 -18
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +13 -8
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/base_tool.py +2 -2
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +232 -26
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +31 -23
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +21 -19
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/query_tool.py +17 -18
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +30 -31
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +131 -77
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +29 -16
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/file_output_factory.py +64 -51
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/file_output_manager.py +34 -24
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +8 -4
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/models.py +7 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/plugins/base.py +9 -7
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/plugins/manager.py +1 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/css.py +2 -21
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/html.py +2 -15
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/markdown.py +30 -41
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/python.py +20 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/query_loader.py +5 -5
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/security/validator.py +114 -86
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/utils/__init__.py +58 -28
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/utils/tree_sitter_compat.py +72 -65
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/utils.py +83 -25
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/upload_to_pypi.py +2 -6
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/uv.lock +1 -1
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.gitignore +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/AGENTS.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/release.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.analyze.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.checklist.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.clarify.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.constitution.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.implement.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.plan.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.specify.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/commands/speckit.tasks.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/release.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.analyze.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.checklist.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.clarify.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.constitution.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.implement.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.plan.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.specify.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/docs/speckit.tasks.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.roo/rules/specify-rules.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/checklists/requirements.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/completion-report-template.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/completion-report.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/contracts/query-service-api.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/data-model.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/implementation-guidelines-part2.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/implementation-guidelines.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/plan.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/progress-management-final.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/progress-management.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/project-overview.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/quickstart.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/research.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/spec.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/async-query-service-fix/tasks.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/memory/constitution.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/scripts/powershell/check-prerequisites.ps1 +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/scripts/powershell/common.ps1 +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/scripts/powershell/create-new-feature.ps1 +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/scripts/powershell/setup-plan.ps1 +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/scripts/powershell/update-agent-context.ps1 +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/templates/agent-file-template.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/templates/checklist-template.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/templates/plan-template.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/templates/spec-template.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/.specify/templates/tasks-template.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/ASYNC_ARCHITECTURE_DESIGN.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/CLI_ARCHITECTURE_REDESIGN.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/CLI_COMMAND_BUG_FIX_SPECIFICATION.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/IMPLEMENTATION_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/coverage.json +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/analysis/README.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/analysis/project_metrics_2025-10-16.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/analysis/speckit_analysis_2025-10-16.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/api/data_models.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/api/formatter_registry.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/api/mcp_tools_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/developer_guide.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/file_output_manager_factory_implementation.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/docs/test_fixes/suppress_output_mock_fix_2025-10-16.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/ComprehensiveTypeScript.ts +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/ModernJavaScript.js +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/ReactComponent.jsx +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/ReactTypeScriptComponent.tsx +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/TypeScriptDeclarations.d.ts +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/comprehensive_sample.css +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/comprehensive_sample.html +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/test_markdown.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/project_scale_evaluation_report.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/DOCUMENTATION_INDEX.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/ERROR_HANDLING_SPECIFICATION.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/GLOSSARY.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/PERFORMANCE_BENCHMARKS.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/README.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/checklists/requirements.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/contracts/mcp-resources-api.json +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/contracts/mcp-tools-api.json +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/data-model.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/implementation_status.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/plan.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/quickstart.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/research.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/resources/mcp_resources_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/spec.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tasks.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/test_environment_status.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/analyze_code_structure_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/check_code_scale_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/extract_code_section_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/find_and_grep_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/list_files_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/query_code_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/search_content_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/001-mcp-tree-sitter/tools/set_project_path_specification.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/002-language-abstraction-spec.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/003-html-css-support-spec.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/004-formatter-extension-spec.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/specs/005-implementation-plan.md +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/test_output.txt +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/list_files_cli.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/cli/commands/search_content_cli.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.8.3 → tree_sitter_analyzer-1.9.0}/upload_interactive.py +0 -0
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.9.0] - 2025-10-16
|
|
4
|
+
|
|
5
|
+
### 🚀 新機能
|
|
6
|
+
- **並行処理エンジン**: search_content MCPツールで複数ディレクトリの並行検索対応
|
|
7
|
+
- **パフォーマンス向上**: 最大4倍の検索速度向上
|
|
8
|
+
- **型安全性改善**: mypyエラー7%削減(341個→318個)
|
|
9
|
+
|
|
10
|
+
### 🔧 改善
|
|
11
|
+
- コードスタイル統一(ruff違反大幅削減)
|
|
12
|
+
- 技術的負債の包括的解消
|
|
13
|
+
- テスト実行時間83%短縮の維持
|
|
14
|
+
|
|
15
|
+
### 🧪 テスト
|
|
16
|
+
- 並行処理機能の包括的テストスイート追加
|
|
17
|
+
- エラーハンドリングとタイムアウト制御の強化
|
|
18
|
+
|
|
19
|
+
### 📚 ドキュメント
|
|
20
|
+
- 技術的負債分析レポート追加
|
|
21
|
+
- 次期開発計画の策定
|
|
22
|
+
|
|
23
|
+
## [1.8.4] - 2025-10-16
|
|
24
|
+
|
|
25
|
+
### 🚀 Added
|
|
26
|
+
|
|
27
|
+
#### 設定可能なファイルログ機能
|
|
28
|
+
- **🆕 環境変数によるファイルログ制御**: 新しい環境変数による柔軟なログ設定
|
|
29
|
+
- `TREE_SITTER_ANALYZER_ENABLE_FILE_LOG`: ファイルログの有効/無効制御
|
|
30
|
+
- `TREE_SITTER_ANALYZER_LOG_DIR`: カスタムログディレクトリの指定
|
|
31
|
+
- `TREE_SITTER_ANALYZER_FILE_LOG_LEVEL`: ファイルログレベルの制御
|
|
32
|
+
- **🛡️ デフォルト動作の改善**: ユーザープロジェクトの汚染防止のため、デフォルトではファイルログを無効化
|
|
33
|
+
- **📁 システム一時ディレクトリ使用**: ファイルログ有効時はシステム一時ディレクトリを使用
|
|
34
|
+
- **🔄 後方互換性の維持**: 既存の機能に影響を与えない設計
|
|
35
|
+
|
|
36
|
+
#### 包括的なドキュメントとテスト
|
|
37
|
+
- **📚 新しいドキュメント**:
|
|
38
|
+
- `docs/debugging_guide.md`: 包括的なデバッグガイド(247行)
|
|
39
|
+
- `docs/troubleshooting_guide.md`: トラブルシューティングガイド(354行)
|
|
40
|
+
- **🧪 包括的なテストスイート**: `tests/test_logging_configuration.py`(381行のテストケース)
|
|
41
|
+
- **📖 README更新**: ログ設定に関する詳細な説明を追加(53行追加)
|
|
42
|
+
|
|
43
|
+
### 🔧 Enhanced
|
|
44
|
+
|
|
45
|
+
#### ログシステムの改善
|
|
46
|
+
- **⚙️ 柔軟な設定オプション**: 環境変数による細かいログ制御
|
|
47
|
+
- **🎯 ユーザーエクスペリエンス**: プロジェクト汚染の防止とクリーンな動作
|
|
48
|
+
- **🔧 開発者サポート**: デバッグとトラブルシューティングの強化
|
|
49
|
+
|
|
50
|
+
### 🧪 Quality Assurance
|
|
51
|
+
|
|
52
|
+
#### 継続的な品質保証
|
|
53
|
+
- **3,380個のテスト**: 100%通過率を維持
|
|
54
|
+
- **新規テスト追加**: ログ設定機能の包括的なテストカバレッジ
|
|
55
|
+
- **クロスプラットフォーム**: Windows、macOS、Linuxでの完全な互換性
|
|
56
|
+
|
|
57
|
+
### 📚 Documentation
|
|
58
|
+
|
|
59
|
+
#### ドキュメントの大幅拡充
|
|
60
|
+
- **デバッグガイド**: 開発者向けの詳細なデバッグ手順
|
|
61
|
+
- **トラブルシューティング**: 一般的な問題と解決方法
|
|
62
|
+
- **設定ガイド**: 環境変数による詳細な設定方法
|
|
63
|
+
|
|
64
|
+
### 🎯 Impact
|
|
65
|
+
|
|
66
|
+
この版本では、設定可能なファイルログ機能により、開発者のデバッグ体験が大幅に向上しました。デフォルトでファイルログを無効にすることで、ユーザープロジェクトの汚染を防ぎ、必要に応じて詳細なログを有効にできる柔軟性を提供します。
|
|
67
|
+
|
|
3
68
|
## [1.8.3] - 2025-10-16
|
|
4
69
|
|
|
5
70
|
### 🚀 Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.9.0
|
|
4
4
|
Summary: AI-era enterprise-grade code analysis tool with comprehensive HTML/CSS support, dynamic plugin architecture, and MCP integration
|
|
5
5
|
Project-URL: Homepage, https://github.com/aimasteracc/tree-sitter-analyzer
|
|
6
6
|
Project-URL: Documentation, https://github.com/aimasteracc/tree-sitter-analyzer#readme
|
|
@@ -198,11 +198,11 @@ Description-Content-Type: text/markdown
|
|
|
198
198
|
|
|
199
199
|
[](https://python.org)
|
|
200
200
|
[](LICENSE)
|
|
201
|
-
[](#quality-assurance)
|
|
202
202
|
[](https://codecov.io/gh/aimasteracc/tree-sitter-analyzer)
|
|
203
203
|
[](#quality-assurance)
|
|
204
204
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
205
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
206
206
|
[](https://zread.ai/aimasteracc/tree-sitter-analyzer)
|
|
207
207
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
208
208
|
|
|
@@ -255,7 +255,7 @@ Tree-sitter Analyzer is an enterprise-grade code analysis tool designed for the
|
|
|
255
255
|
| **Go** | Basic Support | Basic syntax parsing |
|
|
256
256
|
|
|
257
257
|
### 🏆 Production Ready
|
|
258
|
-
- **3,
|
|
258
|
+
- **3,380 Tests** - 100% pass rate, enterprise-grade quality assurance
|
|
259
259
|
- **High Coverage** - Comprehensive test coverage
|
|
260
260
|
- **Cross-platform Support** - Compatible with Windows, macOS, Linux
|
|
261
261
|
- **Continuous Maintenance** - Active development and community support
|
|
@@ -373,6 +373,7 @@ rg --version
|
|
|
373
373
|
- **Roo Code**: Supports MCP protocol, use the same configuration format
|
|
374
374
|
- **Other MCP-compatible clients**: Use the same server configuration
|
|
375
375
|
|
|
376
|
+
|
|
376
377
|
---
|
|
377
378
|
|
|
378
379
|
### 3.2 💻 CLI Users (Command Line Tools)
|
|
@@ -640,6 +641,19 @@ Tree-sitter Analyzer provides a rich set of MCP tools designed for AI assistants
|
|
|
640
641
|
| **📁 Resource Access** | Code file resources | URI code file access | File content access via URI identification |
|
|
641
642
|
| | Project statistics resources | Project statistics data access | Project analysis data and statistical information |
|
|
642
643
|
|
|
644
|
+
### 🆕 v1.8.4 New Feature: Configurable File Logging
|
|
645
|
+
|
|
646
|
+
Revolutionary environment variable-controlled file logging system:
|
|
647
|
+
|
|
648
|
+
- **🔧 Environment Variable Control**: Flexible file logging behavior control through environment variables
|
|
649
|
+
- `TREE_SITTER_ANALYZER_ENABLE_FILE_LOG`: Enable/disable file logging
|
|
650
|
+
- `TREE_SITTER_ANALYZER_LOG_DIR`: Custom log directory path
|
|
651
|
+
- `TREE_SITTER_ANALYZER_FILE_LOG_LEVEL`: Control file log level
|
|
652
|
+
- **🛡️ Improved Default Behavior**: File logging disabled by default to prevent user project pollution
|
|
653
|
+
- **📁 Smart Directory Selection**: Uses system temp directory when enabled, keeping projects clean
|
|
654
|
+
- **🔄 Backward Compatibility**: Maintains all existing functionality unchanged
|
|
655
|
+
- **📚 Complete Documentation Support**: Includes debugging guides and troubleshooting documentation
|
|
656
|
+
|
|
643
657
|
### 🆕 v1.8.3 New Feature: MCP Tools Design Consistency Enhancement
|
|
644
658
|
|
|
645
659
|
Comprehensive MCP tools unification and design consistency improvements:
|
|
@@ -859,7 +873,7 @@ uv run python -m tree_sitter_analyzer --show-query-languages
|
|
|
859
873
|
## 8. 🏆 Quality Assurance
|
|
860
874
|
|
|
861
875
|
### 📊 Quality Metrics
|
|
862
|
-
- **3,
|
|
876
|
+
- **3,380 tests** - 100% pass rate ✅
|
|
863
877
|
- **High code coverage** - Comprehensive test suite
|
|
864
878
|
- **Zero test failures** - Production ready
|
|
865
879
|
- **Cross-platform support** - Windows, macOS, Linux
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](#quality-assurance)
|
|
8
8
|
[](https://codecov.io/gh/aimasteracc/tree-sitter-analyzer)
|
|
9
9
|
[](#quality-assurance)
|
|
10
10
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
11
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
12
12
|
[](https://zread.ai/aimasteracc/tree-sitter-analyzer)
|
|
13
13
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
14
14
|
|
|
@@ -61,7 +61,7 @@ Tree-sitter Analyzer is an enterprise-grade code analysis tool designed for the
|
|
|
61
61
|
| **Go** | Basic Support | Basic syntax parsing |
|
|
62
62
|
|
|
63
63
|
### 🏆 Production Ready
|
|
64
|
-
- **3,
|
|
64
|
+
- **3,380 Tests** - 100% pass rate, enterprise-grade quality assurance
|
|
65
65
|
- **High Coverage** - Comprehensive test coverage
|
|
66
66
|
- **Cross-platform Support** - Compatible with Windows, macOS, Linux
|
|
67
67
|
- **Continuous Maintenance** - Active development and community support
|
|
@@ -179,6 +179,7 @@ rg --version
|
|
|
179
179
|
- **Roo Code**: Supports MCP protocol, use the same configuration format
|
|
180
180
|
- **Other MCP-compatible clients**: Use the same server configuration
|
|
181
181
|
|
|
182
|
+
|
|
182
183
|
---
|
|
183
184
|
|
|
184
185
|
### 3.2 💻 CLI Users (Command Line Tools)
|
|
@@ -446,6 +447,19 @@ Tree-sitter Analyzer provides a rich set of MCP tools designed for AI assistants
|
|
|
446
447
|
| **📁 Resource Access** | Code file resources | URI code file access | File content access via URI identification |
|
|
447
448
|
| | Project statistics resources | Project statistics data access | Project analysis data and statistical information |
|
|
448
449
|
|
|
450
|
+
### 🆕 v1.8.4 New Feature: Configurable File Logging
|
|
451
|
+
|
|
452
|
+
Revolutionary environment variable-controlled file logging system:
|
|
453
|
+
|
|
454
|
+
- **🔧 Environment Variable Control**: Flexible file logging behavior control through environment variables
|
|
455
|
+
- `TREE_SITTER_ANALYZER_ENABLE_FILE_LOG`: Enable/disable file logging
|
|
456
|
+
- `TREE_SITTER_ANALYZER_LOG_DIR`: Custom log directory path
|
|
457
|
+
- `TREE_SITTER_ANALYZER_FILE_LOG_LEVEL`: Control file log level
|
|
458
|
+
- **🛡️ Improved Default Behavior**: File logging disabled by default to prevent user project pollution
|
|
459
|
+
- **📁 Smart Directory Selection**: Uses system temp directory when enabled, keeping projects clean
|
|
460
|
+
- **🔄 Backward Compatibility**: Maintains all existing functionality unchanged
|
|
461
|
+
- **📚 Complete Documentation Support**: Includes debugging guides and troubleshooting documentation
|
|
462
|
+
|
|
449
463
|
### 🆕 v1.8.3 New Feature: MCP Tools Design Consistency Enhancement
|
|
450
464
|
|
|
451
465
|
Comprehensive MCP tools unification and design consistency improvements:
|
|
@@ -665,7 +679,7 @@ uv run python -m tree_sitter_analyzer --show-query-languages
|
|
|
665
679
|
## 8. 🏆 Quality Assurance
|
|
666
680
|
|
|
667
681
|
### 📊 Quality Metrics
|
|
668
|
-
- **3,
|
|
682
|
+
- **3,380 tests** - 100% pass rate ✅
|
|
669
683
|
- **High code coverage** - Comprehensive test suite
|
|
670
684
|
- **Zero test failures** - Production ready
|
|
671
685
|
- **Cross-platform support** - Windows, macOS, Linux
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](#8--品質保証)
|
|
8
8
|
[](https://codecov.io/gh/aimasteracc/tree-sitter-analyzer)
|
|
9
9
|
[](#8--品質保証)
|
|
10
10
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
11
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
12
12
|
[](https://zread.ai/aimasteracc/tree-sitter-analyzer)
|
|
13
13
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
14
14
|
|
|
@@ -61,7 +61,7 @@ Tree-sitter Analyzerは、AI時代のために設計されたエンタープラ
|
|
|
61
61
|
| **Go** | 基本サポート | 基本構文解析 |
|
|
62
62
|
|
|
63
63
|
### 🏆 本番環境対応
|
|
64
|
-
- **3,
|
|
64
|
+
- **3,380のテスト** - 100%合格率、エンタープライズグレードの品質保証
|
|
65
65
|
- **高カバレッジ** - 包括的なテストスイート
|
|
66
66
|
- **クロスプラットフォームサポート** - Windows、macOS、Linuxとの完全な互換性
|
|
67
67
|
- **継続的なメンテナンス** - アクティブな開発とコミュニティサポート
|
|
@@ -446,6 +446,16 @@ Tree-sitter AnalyzerはAIアシスタント向けに設計された豊富なMCP
|
|
|
446
446
|
| **📁 リソースアクセス** | コードファイルリソース | URIコードファイルアクセス | URI識別によるファイルコンテンツアクセス |
|
|
447
447
|
| | プロジェクト統計リソース | プロジェクト統計データアクセス | プロジェクト解析データと統計情報 |
|
|
448
448
|
|
|
449
|
+
### 🆕 v1.8.4新機能:設定可能ファイルログ
|
|
450
|
+
|
|
451
|
+
環境変数による柔軟なファイルログ制御システム:
|
|
452
|
+
|
|
453
|
+
- **🔧 環境変数制御**:`TREE_SITTER_ANALYZER_ENABLE_FILE_LOG`でファイルログの有効/無効を制御
|
|
454
|
+
- **📁 カスタムログディレクトリ**:`TREE_SITTER_ANALYZER_LOG_DIR`でログファイルの保存場所を指定
|
|
455
|
+
- **📊 ログレベル設定**:`TREE_SITTER_ANALYZER_FILE_LOG_LEVEL`でログの詳細度を制御(DEBUG、INFO、WARNING、ERROR)
|
|
456
|
+
- **🚫 プロジェクト汚染防止**:デフォルトでファイルログを無効化し、プロジェクトディレクトリの清潔性を保持
|
|
457
|
+
- **🔄 動的制御**:実行時に環境変数を変更してログ動作を調整可能
|
|
458
|
+
|
|
449
459
|
### 🆕 v1.8.3新機能:MCPツール設計一貫性の強化
|
|
450
460
|
|
|
451
461
|
包括的なMCPツール統一と設計一貫性の改善:
|
|
@@ -665,7 +675,7 @@ uv run python -m tree_sitter_analyzer --show-query-languages
|
|
|
665
675
|
## 8. 🏆 品質保証
|
|
666
676
|
|
|
667
677
|
### 📊 品質メトリクス
|
|
668
|
-
- **3,
|
|
678
|
+
- **3,380のテスト** - 100%合格率 ✅
|
|
669
679
|
- **高コードカバレッジ** - 包括的なテストスイート
|
|
670
680
|
- **ゼロテスト失敗** - 本番環境対応
|
|
671
681
|
- **クロスプラットフォームサポート** - Windows、macOS、Linux
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](#质量保证)
|
|
8
8
|
[](https://codecov.io/gh/aimasteracc/tree-sitter-analyzer)
|
|
9
9
|
[](#质量保证)
|
|
10
10
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
11
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
12
12
|
[](https://zread.ai/aimasteracc/tree-sitter-analyzer)
|
|
13
13
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
14
14
|
|
|
@@ -62,7 +62,7 @@ Tree-sitter Analyzer 是一个为AI时代设计的企业级代码分析工具,
|
|
|
62
62
|
| **Go** | 基础支持 | 基本语法解析 |
|
|
63
63
|
|
|
64
64
|
### 🏆 生产就绪
|
|
65
|
-
- **3,
|
|
65
|
+
- **3,380个测试** - 100%通过率,企业级质量保证
|
|
66
66
|
- **高覆盖率** - 全面的测试覆盖
|
|
67
67
|
- **跨平台支持** - Windows、macOS、Linux全平台兼容
|
|
68
68
|
- **持续维护** - 活跃的开发和社区支持
|
|
@@ -447,6 +447,19 @@ Tree-sitter Analyzer提供了丰富的MCP工具集,专为AI助手设计:
|
|
|
447
447
|
| **📁 资源访问** | 代码文件资源 | URI访问代码文件 | 通过URI标识访问文件内容 |
|
|
448
448
|
| | 项目统计资源 | 访问项目统计数据 | 项目分析数据和统计信息 |
|
|
449
449
|
|
|
450
|
+
### 🆕 v1.8.4新特性:可配置文件日志功能
|
|
451
|
+
|
|
452
|
+
革命性的环境变量控制文件日志系统:
|
|
453
|
+
|
|
454
|
+
- **🔧 环境变量控制**:通过环境变量灵活控制文件日志行为
|
|
455
|
+
- `TREE_SITTER_ANALYZER_ENABLE_FILE_LOG`: 启用/禁用文件日志
|
|
456
|
+
- `TREE_SITTER_ANALYZER_LOG_DIR`: 自定义日志目录路径
|
|
457
|
+
- `TREE_SITTER_ANALYZER_FILE_LOG_LEVEL`: 控制文件日志级别
|
|
458
|
+
- **🛡️ 默认行为改进**:默认禁用文件日志,防止用户项目污染
|
|
459
|
+
- **📁 智能目录选择**:启用时使用系统临时目录,保持项目清洁
|
|
460
|
+
- **🔄 向后兼容性**:完全保持现有功能不变
|
|
461
|
+
- **📚 完整文档支持**:包含调试指南和故障排除文档
|
|
462
|
+
|
|
450
463
|
### 🆕 v1.8.3新特性:MCP工具设计一致性增强
|
|
451
464
|
|
|
452
465
|
全面的MCP工具统一和设计一致性改进:
|
|
@@ -667,7 +680,7 @@ uv run python -m tree_sitter_analyzer --show-query-languages
|
|
|
667
680
|
## 8. 🏆 质量保证
|
|
668
681
|
|
|
669
682
|
### 📊 质量指标
|
|
670
|
-
- **3,
|
|
683
|
+
- **3,380个测试** - 100%通过率 ✅
|
|
671
684
|
- **高代码覆盖率** - 全面测试套件
|
|
672
685
|
- **零测试失败** - 生产就绪
|
|
673
686
|
- **跨平台支持** - Windows、macOS、Linux
|
|
@@ -2,89 +2,101 @@
|
|
|
2
2
|
"""
|
|
3
3
|
tree-sitter-analyzerプロジェクト固有のメトリクス収集スクリプト
|
|
4
4
|
"""
|
|
5
|
-
|
|
6
|
-
import glob
|
|
7
|
-
from pathlib import Path
|
|
8
|
-
import subprocess
|
|
9
|
-
import sys
|
|
5
|
+
|
|
10
6
|
from collections import defaultdict
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
11
9
|
|
|
12
10
|
def is_project_file(filepath):
|
|
13
11
|
"""プロジェクト固有のファイルかどうかを判定"""
|
|
14
12
|
path_str = str(filepath)
|
|
15
13
|
# 除外するディレクトリ
|
|
16
|
-
exclude_dirs = [
|
|
17
|
-
|
|
14
|
+
exclude_dirs = [
|
|
15
|
+
".venv",
|
|
16
|
+
"__pycache__",
|
|
17
|
+
".git",
|
|
18
|
+
".pytest_cache",
|
|
19
|
+
"node_modules",
|
|
20
|
+
".ruff_cache",
|
|
21
|
+
]
|
|
22
|
+
|
|
18
23
|
for exclude_dir in exclude_dirs:
|
|
19
24
|
if exclude_dir in path_str:
|
|
20
25
|
return False
|
|
21
26
|
return True
|
|
22
27
|
|
|
28
|
+
|
|
23
29
|
def count_lines_in_file(filepath):
|
|
24
30
|
"""ファイルの行数を数える"""
|
|
25
31
|
try:
|
|
26
|
-
with open(filepath,
|
|
32
|
+
with open(filepath, encoding="utf-8", errors="ignore") as f:
|
|
27
33
|
lines = f.readlines()
|
|
28
34
|
total_lines = len(lines)
|
|
29
|
-
empty_lines = sum(1 for line in lines if line.strip() ==
|
|
30
|
-
comment_lines = sum(1 for line in lines if line.strip().startswith(
|
|
35
|
+
empty_lines = sum(1 for line in lines if line.strip() == "")
|
|
36
|
+
comment_lines = sum(1 for line in lines if line.strip().startswith("#"))
|
|
31
37
|
code_lines = total_lines - empty_lines - comment_lines
|
|
32
38
|
return {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
"total": total_lines,
|
|
40
|
+
"empty": empty_lines,
|
|
41
|
+
"comment": comment_lines,
|
|
42
|
+
"code": code_lines,
|
|
37
43
|
}
|
|
38
44
|
except Exception as e:
|
|
39
45
|
print(f"Error reading {filepath}: {e}")
|
|
40
|
-
return {
|
|
46
|
+
return {"total": 0, "empty": 0, "comment": 0, "code": 0}
|
|
47
|
+
|
|
41
48
|
|
|
42
49
|
def collect_file_metrics():
|
|
43
50
|
"""ファイルメトリクスを収集"""
|
|
44
51
|
print("=== プロジェクトファイル統計 ===")
|
|
45
|
-
|
|
52
|
+
|
|
46
53
|
# プロジェクト固有のPythonファイルの統計
|
|
47
|
-
all_py_files = list(Path(
|
|
54
|
+
all_py_files = list(Path(".").rglob("*.py"))
|
|
48
55
|
py_files = [f for f in all_py_files if is_project_file(f)]
|
|
49
|
-
test_files = [
|
|
50
|
-
|
|
56
|
+
test_files = [
|
|
57
|
+
f
|
|
58
|
+
for f in py_files
|
|
59
|
+
if "test_" in f.name or f.name.startswith("test_") or "tests/" in str(f)
|
|
60
|
+
]
|
|
61
|
+
|
|
51
62
|
print(f"プロジェクト内Pythonファイル数: {len(py_files)}")
|
|
52
63
|
print(f"テストファイル数: {len(test_files)}")
|
|
53
64
|
print(f"プロダクションファイル数: {len(py_files) - len(test_files)}")
|
|
54
|
-
|
|
65
|
+
|
|
55
66
|
# 言語別ファイル数(プロジェクト固有のみ)
|
|
56
67
|
extensions = defaultdict(int)
|
|
57
|
-
for file_path in Path(
|
|
68
|
+
for file_path in Path(".").rglob("*"):
|
|
58
69
|
if file_path.is_file() and is_project_file(file_path):
|
|
59
70
|
ext = file_path.suffix.lower()
|
|
60
71
|
if ext:
|
|
61
72
|
extensions[ext] += 1
|
|
62
|
-
|
|
73
|
+
|
|
63
74
|
print("\n=== 言語別ファイル数(プロジェクト固有)===")
|
|
64
75
|
for ext, count in sorted(extensions.items(), key=lambda x: x[1], reverse=True):
|
|
65
76
|
if count > 1: # 2個以上のファイルがある拡張子のみ表示
|
|
66
77
|
print(f"{ext}: {count}")
|
|
67
|
-
|
|
78
|
+
|
|
68
79
|
return py_files, test_files
|
|
69
80
|
|
|
81
|
+
|
|
70
82
|
def collect_line_metrics(py_files, test_files):
|
|
71
83
|
"""行数メトリクスを収集"""
|
|
72
84
|
print("\n=== 行数統計(プロジェクト固有)===")
|
|
73
|
-
|
|
74
|
-
total_metrics = {
|
|
75
|
-
test_metrics = {
|
|
76
|
-
prod_metrics = {
|
|
77
|
-
|
|
85
|
+
|
|
86
|
+
total_metrics = {"total": 0, "empty": 0, "comment": 0, "code": 0}
|
|
87
|
+
test_metrics = {"total": 0, "empty": 0, "comment": 0, "code": 0}
|
|
88
|
+
prod_metrics = {"total": 0, "empty": 0, "comment": 0, "code": 0}
|
|
89
|
+
|
|
78
90
|
file_sizes = []
|
|
79
|
-
|
|
91
|
+
|
|
80
92
|
for py_file in py_files:
|
|
81
93
|
metrics = count_lines_in_file(py_file)
|
|
82
|
-
file_sizes.append((py_file, metrics[
|
|
83
|
-
|
|
94
|
+
file_sizes.append((py_file, metrics["total"]))
|
|
95
|
+
|
|
84
96
|
# 総計に追加
|
|
85
97
|
for key in total_metrics:
|
|
86
98
|
total_metrics[key] += metrics[key]
|
|
87
|
-
|
|
99
|
+
|
|
88
100
|
# テストファイルかプロダクションファイルかで分類
|
|
89
101
|
if py_file in test_files:
|
|
90
102
|
for key in test_metrics:
|
|
@@ -92,98 +104,106 @@ def collect_line_metrics(py_files, test_files):
|
|
|
92
104
|
else:
|
|
93
105
|
for key in prod_metrics:
|
|
94
106
|
prod_metrics[key] += metrics[key]
|
|
95
|
-
|
|
107
|
+
|
|
96
108
|
print("全体:")
|
|
97
109
|
print(f" 総行数: {total_metrics['total']:,}")
|
|
98
110
|
print(f" 実効コード行数: {total_metrics['code']:,}")
|
|
99
111
|
print(f" コメント行数: {total_metrics['comment']:,}")
|
|
100
112
|
print(f" 空行数: {total_metrics['empty']:,}")
|
|
101
|
-
|
|
113
|
+
|
|
102
114
|
print("\nプロダクションコード:")
|
|
103
115
|
print(f" 総行数: {prod_metrics['total']:,}")
|
|
104
116
|
print(f" 実効コード行数: {prod_metrics['code']:,}")
|
|
105
|
-
|
|
117
|
+
|
|
106
118
|
print("\nテストコード:")
|
|
107
119
|
print(f" 総行数: {test_metrics['total']:,}")
|
|
108
120
|
print(f" 実効コード行数: {test_metrics['code']:,}")
|
|
109
|
-
|
|
121
|
+
|
|
110
122
|
# 最大ファイルサイズ(プロジェクト固有のみ)
|
|
111
123
|
file_sizes.sort(key=lambda x: x[1], reverse=True)
|
|
112
124
|
print("\n=== 最大ファイル(上位10件)===")
|
|
113
125
|
for i, (file_path, lines) in enumerate(file_sizes[:10]):
|
|
114
|
-
print(f"{i+1:2d}. {file_path} ({lines:,} 行)")
|
|
115
|
-
|
|
126
|
+
print(f"{i + 1:2d}. {file_path} ({lines:,} 行)")
|
|
127
|
+
|
|
116
128
|
return total_metrics, prod_metrics, test_metrics
|
|
117
129
|
|
|
130
|
+
|
|
118
131
|
def analyze_project_structure():
|
|
119
132
|
"""プロジェクト構造を分析"""
|
|
120
133
|
print("\n=== プロジェクト構造分析 ===")
|
|
121
|
-
|
|
134
|
+
|
|
122
135
|
# メインパッケージのディレクトリ構造
|
|
123
|
-
main_package = Path(
|
|
136
|
+
main_package = Path("tree_sitter_analyzer")
|
|
124
137
|
if main_package.exists():
|
|
125
138
|
print(f"メインパッケージ: {main_package}")
|
|
126
|
-
subdirs = [d for d in main_package.rglob(
|
|
139
|
+
subdirs = [d for d in main_package.rglob("*") if d.is_dir()]
|
|
127
140
|
print(f"サブディレクトリ数: {len(subdirs)}")
|
|
128
|
-
|
|
141
|
+
|
|
129
142
|
# 主要なサブモジュール
|
|
130
143
|
main_subdirs = [d for d in main_package.iterdir() if d.is_dir()]
|
|
131
144
|
print("主要サブモジュール:")
|
|
132
145
|
for subdir in sorted(main_subdirs):
|
|
133
|
-
py_files_in_subdir = list(subdir.rglob(
|
|
146
|
+
py_files_in_subdir = list(subdir.rglob("*.py"))
|
|
134
147
|
print(f" {subdir.name}: {len(py_files_in_subdir)} ファイル")
|
|
135
148
|
|
|
149
|
+
|
|
136
150
|
def check_dependencies():
|
|
137
151
|
"""依存関係を確認"""
|
|
138
152
|
print("\n=== 依存関係確認 ===")
|
|
139
|
-
|
|
153
|
+
|
|
140
154
|
# pyproject.tomlから依存関係を読み取り
|
|
141
|
-
pyproject_path = Path(
|
|
155
|
+
pyproject_path = Path("pyproject.toml")
|
|
142
156
|
if pyproject_path.exists():
|
|
143
157
|
print("pyproject.tomlから依存関係を確認:")
|
|
144
158
|
try:
|
|
145
|
-
with open(pyproject_path,
|
|
159
|
+
with open(pyproject_path, encoding="utf-8") as f:
|
|
146
160
|
content = f.read()
|
|
147
|
-
if
|
|
148
|
-
lines = content.split(
|
|
161
|
+
if "[tool.poetry.dependencies]" in content:
|
|
162
|
+
lines = content.split("\n")
|
|
149
163
|
in_deps = False
|
|
150
164
|
for line in lines:
|
|
151
|
-
if
|
|
165
|
+
if "[tool.poetry.dependencies]" in line:
|
|
152
166
|
in_deps = True
|
|
153
167
|
continue
|
|
154
|
-
elif line.startswith(
|
|
168
|
+
elif line.startswith("[") and in_deps:
|
|
155
169
|
break
|
|
156
|
-
elif in_deps and
|
|
170
|
+
elif in_deps and "=" in line:
|
|
157
171
|
print(f" {line.strip()}")
|
|
158
172
|
except Exception as e:
|
|
159
173
|
print(f"pyproject.toml読み取りエラー: {e}")
|
|
160
174
|
|
|
175
|
+
|
|
161
176
|
def main():
|
|
162
177
|
"""メイン関数"""
|
|
163
178
|
print("tree-sitter-analyzer プロジェクト固有メトリクス収集")
|
|
164
179
|
print("=" * 60)
|
|
165
|
-
|
|
180
|
+
|
|
166
181
|
# ファイルメトリクス収集
|
|
167
182
|
py_files, test_files = collect_file_metrics()
|
|
168
|
-
|
|
183
|
+
|
|
169
184
|
# 行数メトリクス収集
|
|
170
|
-
total_metrics, prod_metrics, test_metrics = collect_line_metrics(
|
|
171
|
-
|
|
185
|
+
total_metrics, prod_metrics, test_metrics = collect_line_metrics(
|
|
186
|
+
py_files, test_files
|
|
187
|
+
)
|
|
188
|
+
|
|
172
189
|
# プロジェクト構造分析
|
|
173
190
|
analyze_project_structure()
|
|
174
|
-
|
|
191
|
+
|
|
175
192
|
# 依存関係確認
|
|
176
193
|
check_dependencies()
|
|
177
|
-
|
|
194
|
+
|
|
178
195
|
print("\n" + "=" * 60)
|
|
179
196
|
print("プロジェクト固有メトリクス収集完了")
|
|
180
|
-
|
|
197
|
+
|
|
181
198
|
# サマリー
|
|
182
199
|
print("\n=== サマリー ===")
|
|
183
200
|
print(f"プロジェクト規模: {len(py_files)} Pythonファイル")
|
|
184
201
|
print(f"総コード行数: {total_metrics['code']:,} 行")
|
|
185
202
|
print(f"テストカバレッジ対象: {len(test_files)} テストファイル")
|
|
186
|
-
print(
|
|
203
|
+
print(
|
|
204
|
+
f"平均ファイルサイズ: {total_metrics['total'] // len(py_files) if py_files else 0} 行/ファイル"
|
|
205
|
+
)
|
|
206
|
+
|
|
187
207
|
|
|
188
208
|
if __name__ == "__main__":
|
|
189
|
-
main()
|
|
209
|
+
main()
|