tree-sitter-analyzer 1.4.1__tar.gz → 1.6.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.4.1 → tree_sitter_analyzer-1.6.0}/CHANGELOG.md +61 -0
- tree_sitter_analyzer-1.6.0/FILE_OUTPUT_FEATURE_SUMMARY.md +197 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/PKG-INFO +165 -22
- tree_sitter_analyzer-1.6.0/PYTHON_SUPPORT_SUMMARY.md +126 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/README.md +164 -13
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/README_ja.md +161 -10
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/README_zh.md +162 -11
- tree_sitter_analyzer-1.6.0/coverage.json +1 -0
- tree_sitter_analyzer-1.6.0/examples/ModernJavaScript.js +554 -0
- tree_sitter_analyzer-1.6.0/examples/ReactComponent.jsx +577 -0
- tree_sitter_analyzer-1.6.0/examples/file_output_demo.py +147 -0
- tree_sitter_analyzer-1.6.0/examples/javascript_analysis_demo.py +642 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/pyproject.toml +61 -4
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/scripts/sync_version.py +2 -6
- tree_sitter_analyzer-1.6.0/test_python_support.py +54 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/__init__.py +1 -1
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/api.py +108 -8
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +3 -2
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/list_files_cli.py +0 -1
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/search_content_cli.py +3 -2
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli_main.py +3 -1
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/encoding_utils.py +3 -3
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/formatters/formatter_factory.py +3 -0
- tree_sitter_analyzer-1.6.0/tree_sitter_analyzer/formatters/javascript_formatter.py +467 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/formatters/python_formatter.py +161 -20
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/language_loader.py +2 -2
- tree_sitter_analyzer-1.6.0/tree_sitter_analyzer/languages/javascript_plugin.py +1497 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/languages/python_plugin.py +581 -148
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/server.py +17 -2
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +106 -4
- tree_sitter_analyzer-1.6.0/tree_sitter_analyzer/mcp/utils/file_output_manager.py +257 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/utils/path_resolver.py +1 -1
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/models.py +17 -0
- tree_sitter_analyzer-1.6.0/tree_sitter_analyzer/queries/javascript.py +709 -0
- tree_sitter_analyzer-1.6.0/tree_sitter_analyzer/queries/python.py +844 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/table_formatter.py +26 -2
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/upload_to_pypi.py +6 -2
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/uv.lock +396 -6
- tree_sitter_analyzer-1.4.1/coverage.json +0 -1
- tree_sitter_analyzer-1.4.1/tree_sitter_analyzer/languages/javascript_plugin.py +0 -446
- tree_sitter_analyzer-1.4.1/tree_sitter_analyzer/queries/javascript.py +0 -148
- tree_sitter_analyzer-1.4.1/tree_sitter_analyzer/queries/python.py +0 -285
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.gitignore +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/docs/mcp_fd_rg_design.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/training/README.md +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/core/query_service.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/output_manager.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/tree_sitter_analyzer/utils.py +0 -0
- {tree_sitter_analyzer-1.4.1 → tree_sitter_analyzer-1.6.0}/upload_interactive.py +0 -0
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.6.0] - 2025-10-06
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **🎯 File Output Feature**: Revolutionary file output capability for `analyze_code_structure` tool
|
|
7
|
+
- **Token Limit Solution**: Save large analysis results to files instead of returning in responses
|
|
8
|
+
- **Automatic Format Detection**: Smart extension mapping (JSON → `.json`, CSV → `.csv`, Markdown → `.md`, Text → `.txt`)
|
|
9
|
+
- **Environment Configuration**: New `TREE_SITTER_OUTPUT_PATH` environment variable for output directory control
|
|
10
|
+
- **Security Validation**: Comprehensive path validation and write permission checks
|
|
11
|
+
- **Backward Compatibility**: Optional feature that doesn't affect existing functionality
|
|
12
|
+
|
|
13
|
+
- **🐍 Enhanced Python Support**: Complete Python language analysis capabilities
|
|
14
|
+
- **Improved Element Extraction**: Better function and class detection algorithms
|
|
15
|
+
- **Error Handling**: Robust exception handling for edge cases
|
|
16
|
+
- **Extended Test Coverage**: Comprehensive test suite for Python-specific features
|
|
17
|
+
|
|
18
|
+
- **📊 JSON Format Support**: New structured output format
|
|
19
|
+
- **Format Type Extension**: Added "json" to format_type enum options
|
|
20
|
+
- **Structured Data**: Enable better data processing workflows
|
|
21
|
+
- **API Consistency**: Seamless integration with existing format options
|
|
22
|
+
|
|
23
|
+
### Improved
|
|
24
|
+
- **🧪 Quality Metrics**:
|
|
25
|
+
- Test count increased to 1893 (up from 1869)
|
|
26
|
+
- Code coverage maintained at 71.48%
|
|
27
|
+
- Enhanced test stability with mock object improvements
|
|
28
|
+
- **🔧 Code Quality**: Fixed test failures and improved mock handling
|
|
29
|
+
- **📚 Documentation**: Updated all README versions with new feature descriptions
|
|
30
|
+
|
|
31
|
+
### Technical Details
|
|
32
|
+
- **Files Modified**: Enhanced MCP tools, file output manager, and Python plugin
|
|
33
|
+
- **Test Coverage**: All 1893 tests pass with comprehensive coverage
|
|
34
|
+
- **Quality Metrics**: 71.48% code coverage maintained
|
|
35
|
+
- **Breaking Changes**: None - all improvements are backward compatible
|
|
36
|
+
|
|
37
|
+
This minor release introduces game-changing file output capabilities that solve token length limitations while maintaining full backward compatibility. The enhanced Python support and JSON format options provide developers with more powerful analysis tools.
|
|
38
|
+
|
|
39
|
+
## [1.5.0] - 2025-01-19
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
- **🚀 Enhanced JavaScript Analysis**: Improved JavaScript plugin with extended query support
|
|
43
|
+
- **Advanced Pattern Recognition**: Enhanced detection of JavaScript-specific patterns and constructs
|
|
44
|
+
- **Better Error Handling**: Improved exception handling throughout the codebase
|
|
45
|
+
- **Extended Test Coverage**: Added comprehensive test suite with 1869 tests (up from 1797)
|
|
46
|
+
|
|
47
|
+
### Improved
|
|
48
|
+
- **📊 Quality Metrics**:
|
|
49
|
+
- Test count increased to 1869 (up from 1797)
|
|
50
|
+
- Maintained high code quality standards with 71.90% coverage
|
|
51
|
+
- Enhanced CI/CD pipeline with better cross-platform compatibility
|
|
52
|
+
- **🔧 Code Quality**: Improved encoding utilities and path resolution
|
|
53
|
+
- **💡 Plugin Architecture**: Enhanced JavaScript language plugin with better performance
|
|
54
|
+
|
|
55
|
+
### Technical Details
|
|
56
|
+
- **Files Modified**: Multiple files across the codebase for improved functionality
|
|
57
|
+
- **Test Coverage**: All 1869 tests pass with comprehensive coverage
|
|
58
|
+
- **Quality Metrics**: 71.90% code coverage maintained
|
|
59
|
+
- **Breaking Changes**: None - all improvements are backward compatible
|
|
60
|
+
|
|
61
|
+
This minor release focuses on enhanced JavaScript support and improved overall code quality,
|
|
62
|
+
making the tool more robust and reliable for JavaScript code analysis.
|
|
63
|
+
|
|
3
64
|
## [1.4.1] - 2025-01-19
|
|
4
65
|
|
|
5
66
|
### Fixed
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# File Output Feature Implementation Summary
|
|
2
|
+
|
|
3
|
+
## 🎯 Overview
|
|
4
|
+
|
|
5
|
+
This document summarizes the implementation of the file output feature for the `analyze_code_structure` MCP tool, addressing the token length issue by allowing analysis results to be saved to files with automatic format detection.
|
|
6
|
+
|
|
7
|
+
## 📋 Requirements Fulfilled
|
|
8
|
+
|
|
9
|
+
✅ **File Output Support**: `analyze_code_structure` tool now supports saving results to files
|
|
10
|
+
✅ **Automatic Extension Detection**: Based on content type (JSON → `.json`, CSV → `.csv`, Markdown → `.md`, Text → `.txt`)
|
|
11
|
+
✅ **Environment Variable Configuration**: Added `TREE_SITTER_OUTPUT_PATH` for output directory configuration
|
|
12
|
+
✅ **Security Validation**: Output files are written to safe, authorized locations
|
|
13
|
+
✅ **Comprehensive Testing**: Full test coverage for new functionality
|
|
14
|
+
✅ **Documentation Updates**: Updated all three README versions (EN, ZH, JA)
|
|
15
|
+
✅ **Backward Compatibility**: Existing functionality remains unchanged
|
|
16
|
+
|
|
17
|
+
## 🔧 Implementation Details
|
|
18
|
+
|
|
19
|
+
### 1. New Environment Variable
|
|
20
|
+
|
|
21
|
+
Added `TREE_SITTER_OUTPUT_PATH` environment variable to the MCP server configuration:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"env": {
|
|
26
|
+
"TREE_SITTER_PROJECT_ROOT": "/path/to/your/project",
|
|
27
|
+
"TREE_SITTER_OUTPUT_PATH": "/path/to/output/directory"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Output Path Priority:**
|
|
33
|
+
1. `TREE_SITTER_OUTPUT_PATH` environment variable (highest priority)
|
|
34
|
+
2. Project root directory (from `TREE_SITTER_PROJECT_ROOT` or auto-detected)
|
|
35
|
+
3. Current working directory (fallback)
|
|
36
|
+
|
|
37
|
+
### 2. File Output Manager
|
|
38
|
+
|
|
39
|
+
Created `FileOutputManager` class (`tree_sitter_analyzer/mcp/utils/file_output_manager.py`):
|
|
40
|
+
|
|
41
|
+
- **Content Type Detection**: Automatically detects JSON, CSV, Markdown, and plain text
|
|
42
|
+
- **Extension Mapping**: Maps content types to appropriate file extensions
|
|
43
|
+
- **Path Validation**: Ensures output files are written to safe locations
|
|
44
|
+
- **Directory Creation**: Automatically creates parent directories if needed
|
|
45
|
+
|
|
46
|
+
### 3. Enhanced analyze_code_structure Tool
|
|
47
|
+
|
|
48
|
+
Updated `TableFormatTool` (`tree_sitter_analyzer/mcp/tools/table_format_tool.py`):
|
|
49
|
+
|
|
50
|
+
- **New Parameter**: Added `output_file` parameter to tool schema
|
|
51
|
+
- **File Output Logic**: Integrated with FileOutputManager for saving results
|
|
52
|
+
- **Error Handling**: Graceful handling of file output errors without affecting analysis
|
|
53
|
+
- **Response Enhancement**: Added file output status and path to response
|
|
54
|
+
|
|
55
|
+
### 4. MCP Server Updates
|
|
56
|
+
|
|
57
|
+
Updated MCP server (`tree_sitter_analyzer/mcp/server.py`):
|
|
58
|
+
|
|
59
|
+
- **Tool Schema**: Enhanced `analyze_code_structure` tool definition with new parameters
|
|
60
|
+
- **Parameter Passing**: Updated tool call handling to pass `output_file` parameter
|
|
61
|
+
- **Documentation**: Updated tool description to mention file output capability
|
|
62
|
+
|
|
63
|
+
## 📊 Usage Examples
|
|
64
|
+
|
|
65
|
+
### Basic File Output
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"tool": "analyze_code_structure",
|
|
69
|
+
"arguments": {
|
|
70
|
+
"file_path": "src/BigService.java",
|
|
71
|
+
"output_file": "service_analysis"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Format-Specific Output
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"tool": "analyze_code_structure",
|
|
80
|
+
"arguments": {
|
|
81
|
+
"file_path": "src/BigService.java",
|
|
82
|
+
"format_type": "csv",
|
|
83
|
+
"output_file": "service_data"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Response with File Output
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"table_output": "| Class | Methods | Lines |\n|-------|---------|-------|\n| BigService | 66 | 1419 |",
|
|
92
|
+
"format_type": "full",
|
|
93
|
+
"file_path": "src/BigService.java",
|
|
94
|
+
"language": "java",
|
|
95
|
+
"metadata": {...},
|
|
96
|
+
"file_saved": true,
|
|
97
|
+
"output_file_path": "/output/path/service_analysis.md"
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 🧪 Testing Coverage
|
|
102
|
+
|
|
103
|
+
### New Test Files
|
|
104
|
+
|
|
105
|
+
1. **`tests/mcp/test_tools/test_file_output_manager.py`**
|
|
106
|
+
- Content type detection tests
|
|
107
|
+
- File extension mapping tests
|
|
108
|
+
- Output path validation tests
|
|
109
|
+
- File saving functionality tests
|
|
110
|
+
- Environment variable handling tests
|
|
111
|
+
- Error handling tests
|
|
112
|
+
|
|
113
|
+
2. **Enhanced `tests/mcp/test_tools/test_table_format_tool.py`**
|
|
114
|
+
- File output parameter validation tests
|
|
115
|
+
- Successful file output tests
|
|
116
|
+
- File output error handling tests
|
|
117
|
+
- Integration tests with FileOutputManager
|
|
118
|
+
|
|
119
|
+
### Test Coverage Areas
|
|
120
|
+
|
|
121
|
+
- ✅ Content type detection (JSON, CSV, Markdown, Text)
|
|
122
|
+
- ✅ File extension mapping
|
|
123
|
+
- ✅ Output path resolution and validation
|
|
124
|
+
- ✅ File saving with directory creation
|
|
125
|
+
- ✅ Environment variable priority handling
|
|
126
|
+
- ✅ Error handling and graceful degradation
|
|
127
|
+
- ✅ Parameter validation
|
|
128
|
+
- ✅ Integration with existing analysis functionality
|
|
129
|
+
|
|
130
|
+
## 📚 Documentation Updates
|
|
131
|
+
|
|
132
|
+
### README Files Updated
|
|
133
|
+
|
|
134
|
+
1. **`README.md`** (English)
|
|
135
|
+
2. **`README_zh.md`** (Chinese)
|
|
136
|
+
3. **`README_ja.md`** (Japanese)
|
|
137
|
+
|
|
138
|
+
### Documentation Enhancements
|
|
139
|
+
|
|
140
|
+
- Added file output feature description
|
|
141
|
+
- Updated environment variable configuration examples
|
|
142
|
+
- Enhanced SMART workflow descriptions
|
|
143
|
+
- Added usage examples with file output
|
|
144
|
+
- Updated tool descriptions to mention file output capability
|
|
145
|
+
|
|
146
|
+
## 🔒 Security Considerations
|
|
147
|
+
|
|
148
|
+
### Path Validation
|
|
149
|
+
- Output files must be within authorized directories
|
|
150
|
+
- Prevents directory traversal attacks
|
|
151
|
+
- Validates write permissions before attempting file operations
|
|
152
|
+
|
|
153
|
+
### Environment Variable Security
|
|
154
|
+
- `TREE_SITTER_OUTPUT_PATH` provides controlled output location
|
|
155
|
+
- Fallback to project root ensures containment within project boundaries
|
|
156
|
+
- Input sanitization for all file-related parameters
|
|
157
|
+
|
|
158
|
+
## 🚀 Benefits
|
|
159
|
+
|
|
160
|
+
### For Users
|
|
161
|
+
- **Reduced Token Usage**: Large analysis results can be saved to files instead of returned in responses
|
|
162
|
+
- **Persistent Results**: Analysis results are preserved for later reference
|
|
163
|
+
- **Format Flexibility**: Automatic format detection ensures appropriate file extensions
|
|
164
|
+
- **Easy Integration**: Simple parameter addition to existing tool calls
|
|
165
|
+
|
|
166
|
+
### For AI Assistants
|
|
167
|
+
- **Token Efficiency**: Avoid hitting token limits with large analysis results
|
|
168
|
+
- **Better UX**: Can reference saved files for follow-up analysis
|
|
169
|
+
- **Structured Data**: CSV and JSON outputs enable data processing workflows
|
|
170
|
+
|
|
171
|
+
## 🔄 Backward Compatibility
|
|
172
|
+
|
|
173
|
+
- **No Breaking Changes**: Existing tool calls continue to work unchanged
|
|
174
|
+
- **Optional Feature**: File output is only activated when `output_file` parameter is provided
|
|
175
|
+
- **Graceful Degradation**: File output errors don't affect core analysis functionality
|
|
176
|
+
- **API Consistency**: Response format remains consistent with additional file output fields
|
|
177
|
+
|
|
178
|
+
## 📈 Future Enhancements
|
|
179
|
+
|
|
180
|
+
### Potential Improvements
|
|
181
|
+
- Support for additional output formats (XML, YAML)
|
|
182
|
+
- Compression options for large output files
|
|
183
|
+
- Batch processing for multiple files
|
|
184
|
+
- Output file templates and customization
|
|
185
|
+
- Integration with cloud storage services
|
|
186
|
+
|
|
187
|
+
### Extension Points
|
|
188
|
+
- Custom content type detectors
|
|
189
|
+
- Pluggable file output handlers
|
|
190
|
+
- Output format converters
|
|
191
|
+
- File naming strategies
|
|
192
|
+
|
|
193
|
+
## 🎉 Conclusion
|
|
194
|
+
|
|
195
|
+
The file output feature successfully addresses the token length issue while maintaining full backward compatibility and adding significant value for users dealing with large code analysis results. The implementation follows security best practices, includes comprehensive testing, and provides clear documentation for all supported languages.
|
|
196
|
+
|
|
197
|
+
This enhancement enables AI assistants to work more effectively with large codebases by providing a mechanism to persist analysis results outside of the conversation context, thereby avoiding token limits and improving the overall user experience.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.0
|
|
4
4
|
Summary: Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture
|
|
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
|
|
@@ -58,14 +58,10 @@ Requires-Dist: pytest>=8.4.1; extra == 'all'
|
|
|
58
58
|
Requires-Dist: ruff>=0.5.0; extra == 'all'
|
|
59
59
|
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'all'
|
|
60
60
|
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'all'
|
|
61
|
-
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'all'
|
|
62
61
|
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'all'
|
|
63
62
|
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'all'
|
|
64
|
-
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'all'
|
|
65
63
|
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'all'
|
|
66
|
-
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'all'
|
|
67
64
|
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'all'
|
|
68
|
-
Requires-Dist: tree-sitter-python>=0.23.0; extra == 'all'
|
|
69
65
|
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'all'
|
|
70
66
|
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'all'
|
|
71
67
|
Requires-Dist: types-psutil>=5.9.0; extra == 'all'
|
|
@@ -114,14 +110,10 @@ Requires-Dist: pytest>=8.4.1; extra == 'full'
|
|
|
114
110
|
Requires-Dist: ruff>=0.5.0; extra == 'full'
|
|
115
111
|
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'full'
|
|
116
112
|
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'full'
|
|
117
|
-
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'full'
|
|
118
113
|
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'full'
|
|
119
114
|
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'full'
|
|
120
|
-
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'full'
|
|
121
115
|
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'full'
|
|
122
|
-
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'full'
|
|
123
116
|
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'full'
|
|
124
|
-
Requires-Dist: tree-sitter-python>=0.23.0; extra == 'full'
|
|
125
117
|
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'full'
|
|
126
118
|
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'full'
|
|
127
119
|
Requires-Dist: types-psutil>=5.9.0; extra == 'full'
|
|
@@ -171,11 +163,11 @@ Description-Content-Type: text/markdown
|
|
|
171
163
|
|
|
172
164
|
[](https://python.org)
|
|
173
165
|
[](LICENSE)
|
|
174
|
-
[](#quality-assurance)
|
|
167
|
+
[](#quality-assurance)
|
|
176
168
|
[](#quality-assurance)
|
|
177
169
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
178
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
179
171
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
180
172
|
|
|
181
173
|
## 🚀 Break LLM Token Limits, Let AI Understand Code Files of Any Size
|
|
@@ -231,7 +223,7 @@ Total Elements: 85 | Complexity: 348 (avg: 5.27, max: 15)
|
|
|
231
223
|
### 🔄 **AI Assistant SMART Workflow**
|
|
232
224
|
- **S**: `set_project_path` - Setup project root directory
|
|
233
225
|
- **M**: `list_files`, `search_content`, `find_and_grep` - Map target files with precision
|
|
234
|
-
- **A**: `analyze_code_structure` - Analyze core structure with unified elements
|
|
226
|
+
- **A**: `analyze_code_structure` - Analyze core structure with unified elements (supports file output)
|
|
235
227
|
- **R**: `extract_code_section` - Retrieve essential code snippets on demand
|
|
236
228
|
- **T**: Advanced dependency tracing (when needed)
|
|
237
229
|
|
|
@@ -368,7 +360,8 @@ Add the following to your configuration file:
|
|
|
368
360
|
"python", "-m", "tree_sitter_analyzer.mcp.server"
|
|
369
361
|
],
|
|
370
362
|
"env": {
|
|
371
|
-
"TREE_SITTER_PROJECT_ROOT": "/absolute/path/to/your/project"
|
|
363
|
+
"TREE_SITTER_PROJECT_ROOT": "/absolute/path/to/your/project",
|
|
364
|
+
"TREE_SITTER_OUTPUT_PATH": "/absolute/path/to/output/directory"
|
|
372
365
|
}
|
|
373
366
|
}
|
|
374
367
|
}
|
|
@@ -430,7 +423,7 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --partial-read --
|
|
|
430
423
|
> **🎯 SMART Analysis Workflow:**
|
|
431
424
|
> - **S** - Setup project (set_project_path)
|
|
432
425
|
> - **M** - Map target files (precision pattern matching)
|
|
433
|
-
> - **A** - Analyze core structure (analyze_code_structure)
|
|
426
|
+
> - **A** - Analyze core structure (analyze_code_structure with optional file output)
|
|
434
427
|
> - **R** - Retrieve essential code (extract_code_section)
|
|
435
428
|
> - **T** - Trace dependencies (when needed)
|
|
436
429
|
>
|
|
@@ -451,7 +444,8 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --partial-read --
|
|
|
451
444
|
"command": "uv",
|
|
452
445
|
"args": ["run", "python", "-m", "tree_sitter_analyzer.mcp.server"],
|
|
453
446
|
"env": {
|
|
454
|
-
"TREE_SITTER_PROJECT_ROOT": "/path/to/your/project"
|
|
447
|
+
"TREE_SITTER_PROJECT_ROOT": "/path/to/your/project",
|
|
448
|
+
"TREE_SITTER_OUTPUT_PATH": "/path/to/output/directory"
|
|
455
449
|
}
|
|
456
450
|
}
|
|
457
451
|
}
|
|
@@ -903,6 +897,56 @@ rg --version
|
|
|
903
897
|
|
|
904
898
|
> **⚠️ Important:** Without these tools installed, the advanced MCP file search and content analysis features will not work. The basic MCP tools (analyze_code_structure, extract_code_section, etc.) will continue to work normally.
|
|
905
899
|
|
|
900
|
+
### 📁 **File Output Support (v1.5.1+)**
|
|
901
|
+
|
|
902
|
+
The `analyze_code_structure` tool now supports saving analysis results to files with automatic format detection:
|
|
903
|
+
|
|
904
|
+
#### **🎯 Key Features:**
|
|
905
|
+
- **Automatic Extension Detection**: Based on content type (JSON → `.json`, CSV → `.csv`, Markdown → `.md`, Text → `.txt`)
|
|
906
|
+
- **Smart Output Path**: Uses `TREE_SITTER_OUTPUT_PATH` environment variable or project root as fallback
|
|
907
|
+
- **Security Validation**: Ensures output files are written to safe, authorized locations
|
|
908
|
+
- **Content Type Detection**: Automatically detects content format and applies appropriate file extension
|
|
909
|
+
|
|
910
|
+
#### **📋 Usage Examples:**
|
|
911
|
+
|
|
912
|
+
**Basic File Output:**
|
|
913
|
+
```json
|
|
914
|
+
{
|
|
915
|
+
"tool": "analyze_code_structure",
|
|
916
|
+
"arguments": {
|
|
917
|
+
"file_path": "src/BigService.java",
|
|
918
|
+
"output_file": "service_analysis"
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
```
|
|
922
|
+
|
|
923
|
+
**With Format Control:**
|
|
924
|
+
```json
|
|
925
|
+
{
|
|
926
|
+
"tool": "analyze_code_structure",
|
|
927
|
+
"arguments": {
|
|
928
|
+
"file_path": "src/BigService.java",
|
|
929
|
+
"format_type": "csv",
|
|
930
|
+
"output_file": "service_data"
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
#### **🔧 Environment Configuration:**
|
|
936
|
+
```json
|
|
937
|
+
{
|
|
938
|
+
"env": {
|
|
939
|
+
"TREE_SITTER_PROJECT_ROOT": "/path/to/your/project",
|
|
940
|
+
"TREE_SITTER_OUTPUT_PATH": "/path/to/output/directory"
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
```
|
|
944
|
+
|
|
945
|
+
**Output Path Priority:**
|
|
946
|
+
1. `TREE_SITTER_OUTPUT_PATH` environment variable (highest priority)
|
|
947
|
+
2. Project root directory (from `TREE_SITTER_PROJECT_ROOT` or auto-detected)
|
|
948
|
+
3. Current working directory (fallback)
|
|
949
|
+
|
|
906
950
|
#### **🗂️ ListFilesTool - Smart File Discovery**
|
|
907
951
|
- **Advanced filtering**: File type, size, modification time, extension-based filtering
|
|
908
952
|
- **Pattern matching**: Glob patterns and regex support for flexible file discovery
|
|
@@ -933,11 +977,107 @@ rg --version
|
|
|
933
977
|
### 🌍 **Multi-language Support**
|
|
934
978
|
- **Java** - Full support, including Spring, JPA frameworks
|
|
935
979
|
- **Python** - Full support, including type annotations, decorators
|
|
936
|
-
- **JavaScript
|
|
980
|
+
- **JavaScript** - 🆕 **Enterprise-grade support**, including modern ES6+ features, React/Vue/Angular frameworks, JSX, async functions, generators, arrow functions, classes, module systems
|
|
981
|
+
- **TypeScript** - Full support, including type annotations, interfaces
|
|
937
982
|
- **C/C++, Rust, Go** - Basic support
|
|
938
983
|
|
|
939
984
|
---
|
|
940
985
|
|
|
986
|
+
## 🆕 JavaScript Enterprise Support (v1.5.0+)
|
|
987
|
+
|
|
988
|
+
### 🚀 **Modern JavaScript Complete Support**
|
|
989
|
+
|
|
990
|
+
Tree-sitter Analyzer now provides enterprise-level JavaScript support at the same level as Java, including:
|
|
991
|
+
|
|
992
|
+
#### **📋 Core Language Features**
|
|
993
|
+
- **Function Types**: Traditional functions, arrow functions, async functions, generator functions
|
|
994
|
+
- **Class System**: ES6 classes, inheritance, static methods, getters/setters, constructors
|
|
995
|
+
- **Variable Declarations**: var, let, const, destructuring assignment, template literals
|
|
996
|
+
- **Module System**: ES6 import/export, CommonJS require/module.exports
|
|
997
|
+
- **Modern Features**: Spread/rest operators, Promises, async/await
|
|
998
|
+
|
|
999
|
+
#### **🎨 Framework & Ecosystem**
|
|
1000
|
+
- **React Support**: JSX syntax, component analysis, Hook recognition, lifecycle methods
|
|
1001
|
+
- **Vue.js Support**: Single-file components, template syntax, reactive data
|
|
1002
|
+
- **Angular Support**: Components, services, dependency injection pattern recognition
|
|
1003
|
+
- **Node.js Support**: Server-side patterns, Express routing, middleware
|
|
1004
|
+
|
|
1005
|
+
#### **🔍 Advanced Analysis Capabilities**
|
|
1006
|
+
- **JSDoc Extraction**: Complete documentation comment parsing and type information
|
|
1007
|
+
- **Complexity Analysis**: Cyclomatic complexity calculation and code quality metrics
|
|
1008
|
+
- **Framework Detection**: Automatic recognition of React, Vue, Angular project types
|
|
1009
|
+
- **Export Analysis**: Module export mapping and dependency relationship tracking
|
|
1010
|
+
|
|
1011
|
+
#### **💼 Enterprise Features**
|
|
1012
|
+
- **Table Formatting**: Dedicated JavaScript table formatter for clear code structure display
|
|
1013
|
+
- **Performance Optimization**: Caching mechanisms, iterative traversal, efficient large file handling
|
|
1014
|
+
- **Error Handling**: Robust exception handling and detailed error reporting
|
|
1015
|
+
- **Type Safety**: TypeScript-style type annotation support
|
|
1016
|
+
|
|
1017
|
+
### 📊 **JavaScript Analysis Examples**
|
|
1018
|
+
|
|
1019
|
+
```bash
|
|
1020
|
+
# Analyze modern JavaScript files
|
|
1021
|
+
uv run python -m tree_sitter_analyzer examples/ModernJavaScript.js --language javascript --advanced
|
|
1022
|
+
|
|
1023
|
+
# Generate detailed structure tables
|
|
1024
|
+
uv run python -m tree_sitter_analyzer examples/ModernJavaScript.js --language javascript --table full
|
|
1025
|
+
|
|
1026
|
+
# Analyze React components
|
|
1027
|
+
uv run python -m tree_sitter_analyzer examples/ReactComponent.jsx --language javascript --table full
|
|
1028
|
+
|
|
1029
|
+
# Query specific function types
|
|
1030
|
+
uv run python -m tree_sitter_analyzer examples/ModernJavaScript.js --language javascript --query-key async_function
|
|
1031
|
+
```
|
|
1032
|
+
|
|
1033
|
+
### 🎯 **Supported JavaScript Query Types**
|
|
1034
|
+
- `function_declaration` - Traditional function declarations
|
|
1035
|
+
- `arrow_function` - Arrow functions
|
|
1036
|
+
- `async_function` - Async functions
|
|
1037
|
+
- `generator_function` - Generator functions
|
|
1038
|
+
- `class_declaration` - Class declarations
|
|
1039
|
+
- `variable_declaration` - Variable declarations
|
|
1040
|
+
- `import_statement` - Import statements
|
|
1041
|
+
- `export_statement` - Export statements
|
|
1042
|
+
- `jsx_element` - JSX elements
|
|
1043
|
+
- `method_definition` - Method definitions
|
|
1044
|
+
|
|
1045
|
+
### 🏗️ **AI Assistant JavaScript Workflow**
|
|
1046
|
+
|
|
1047
|
+
```
|
|
1048
|
+
I want to analyze the structure of this JavaScript file: examples/ModernJavaScript.js
|
|
1049
|
+
```
|
|
1050
|
+
|
|
1051
|
+
**Example Response Format:**
|
|
1052
|
+
```json
|
|
1053
|
+
{
|
|
1054
|
+
"file_path": "examples/ModernJavaScript.js",
|
|
1055
|
+
"language": "javascript",
|
|
1056
|
+
"element_count": 24,
|
|
1057
|
+
"elements": [
|
|
1058
|
+
{
|
|
1059
|
+
"name": "fetchUserData",
|
|
1060
|
+
"type": "function",
|
|
1061
|
+
"start_line": 208,
|
|
1062
|
+
"end_line": 211,
|
|
1063
|
+
"is_async": true,
|
|
1064
|
+
"framework_type": "vanilla"
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"name": "ModernComponent",
|
|
1068
|
+
"type": "class",
|
|
1069
|
+
"start_line": 31,
|
|
1070
|
+
"end_line": 200,
|
|
1071
|
+
"is_react_component": true,
|
|
1072
|
+
"framework_type": "react"
|
|
1073
|
+
}
|
|
1074
|
+
],
|
|
1075
|
+
"success": true
|
|
1076
|
+
}
|
|
1077
|
+
```
|
|
1078
|
+
|
|
1079
|
+
---
|
|
1080
|
+
|
|
941
1081
|
## 📦 Installation Guide
|
|
942
1082
|
|
|
943
1083
|
### 👤 **End Users**
|
|
@@ -996,7 +1136,10 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
996
1136
|
"tree-sitter-analyzer": {
|
|
997
1137
|
"command": "uv",
|
|
998
1138
|
"args": ["run", "--with", "tree-sitter-analyzer[mcp]", "python", "-m", "tree_sitter_analyzer.mcp.server"],
|
|
999
|
-
"env": {
|
|
1139
|
+
"env": {
|
|
1140
|
+
"TREE_SITTER_PROJECT_ROOT": "/path/to/your/project",
|
|
1141
|
+
"TREE_SITTER_OUTPUT_PATH": "/path/to/output/directory"
|
|
1142
|
+
}
|
|
1000
1143
|
}
|
|
1001
1144
|
}
|
|
1002
1145
|
}
|
|
@@ -1007,12 +1150,12 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
1007
1150
|
## 🏆 Quality Assurance
|
|
1008
1151
|
|
|
1009
1152
|
### 📊 **Quality Metrics**
|
|
1010
|
-
- **1,
|
|
1011
|
-
- **
|
|
1153
|
+
- **1,893 tests** - 100% pass rate ✅
|
|
1154
|
+
- **71.48% code coverage** - Industry-leading level
|
|
1012
1155
|
- **Zero test failures** - Fully CI/CD ready
|
|
1013
1156
|
- **Cross-platform compatibility** - Windows, macOS, Linux
|
|
1014
1157
|
|
|
1015
|
-
### ⚡ **Latest Quality Achievements (v1.
|
|
1158
|
+
### ⚡ **Latest Quality Achievements (v1.6.0)**
|
|
1016
1159
|
- ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
|
|
1017
1160
|
- ✅ **Windows environment** - Implemented robust path normalization using Windows API
|
|
1018
1161
|
- ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
|
|
@@ -1133,7 +1276,7 @@ All AI prompts in this document have been thoroughly tested in real environments
|
|
|
1133
1276
|
|
|
1134
1277
|
**Test Environment:**
|
|
1135
1278
|
- Operating System: Windows 10
|
|
1136
|
-
- Project: tree-sitter-analyzer v1.
|
|
1279
|
+
- Project: tree-sitter-analyzer v1.6.0
|
|
1137
1280
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
1138
1281
|
- Test Coverage: 1797 tests passed, 74.45% coverage
|
|
1139
1282
|
- Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Python Language Support Enhancement Summary
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Python language support has been enhanced to match JavaScript plugin capabilities, providing comprehensive analysis features for modern Python code.
|
|
5
|
+
|
|
6
|
+
## Enhancements Made
|
|
7
|
+
|
|
8
|
+
### 1. Python Plugin Enhancement (`tree_sitter_analyzer/languages/python_plugin.py`)
|
|
9
|
+
- **Enhanced Element Extractor**: Added comprehensive caching, optimization, and modern Python feature support
|
|
10
|
+
- **Performance Optimizations**: Implemented iterative traversal, node text caching, and element caching
|
|
11
|
+
- **Framework Detection**: Added support for Django, Flask, and FastAPI framework detection
|
|
12
|
+
- **Advanced Features**:
|
|
13
|
+
- Async/await function detection
|
|
14
|
+
- Decorator extraction and analysis
|
|
15
|
+
- Type hint support
|
|
16
|
+
- Docstring extraction
|
|
17
|
+
- Complexity analysis
|
|
18
|
+
- Magic method detection
|
|
19
|
+
- Property, staticmethod, classmethod detection
|
|
20
|
+
- Dataclass and abstract class detection
|
|
21
|
+
|
|
22
|
+
### 2. Python Formatter Enhancement (`tree_sitter_analyzer/formatters/python_formatter.py`)
|
|
23
|
+
- **Module-based Headers**: Enhanced to show module/package/script type
|
|
24
|
+
- **Python-specific Formatting**: Added support for decorators, async indicators, type hints
|
|
25
|
+
- **Visibility Symbols**: Added Python-specific visibility indicators (🔓🔒✨)
|
|
26
|
+
- **Enhanced Import Display**: Improved import statement formatting
|
|
27
|
+
- **Decorator Support**: Added decorator formatting and display
|
|
28
|
+
- **Module Docstring**: Added module-level docstring extraction
|
|
29
|
+
|
|
30
|
+
### 3. Python Queries Enhancement (`tree_sitter_analyzer/queries/python.py`)
|
|
31
|
+
- **Comprehensive Query Library**: Added 70+ Python-specific queries
|
|
32
|
+
- **Modern Python Features**: Support for match/case, walrus operator, f-strings
|
|
33
|
+
- **Framework Queries**: Django models/views, Flask routes, FastAPI endpoints
|
|
34
|
+
- **Advanced Patterns**: Context managers, iterators, metaclasses, abstract methods
|
|
35
|
+
- **Query Categories**:
|
|
36
|
+
- Basic structure (functions, classes, variables)
|
|
37
|
+
- Decorators and decorated definitions
|
|
38
|
+
- Control flow (if, for, while, with, try/except)
|
|
39
|
+
- Comprehensions and generators
|
|
40
|
+
- Type hints and annotations
|
|
41
|
+
- Modern Python features (Python 3.8+)
|
|
42
|
+
- Framework-specific patterns
|
|
43
|
+
|
|
44
|
+
### 4. Language Detection and Loading
|
|
45
|
+
- **Already Supported**: Python was already properly configured in language loader and detector
|
|
46
|
+
- **Equal Priority**: Python has same priority as JavaScript in language detection
|
|
47
|
+
- **Extension Support**: Comprehensive support for .py, .pyw, .pyi, .pyx files
|
|
48
|
+
|
|
49
|
+
## Feature Comparison: Python vs JavaScript
|
|
50
|
+
|
|
51
|
+
### Plugin Capabilities
|
|
52
|
+
| Feature | Python | JavaScript | Status |
|
|
53
|
+
|---------|--------|------------|--------|
|
|
54
|
+
| Query Count | 70 | 78 | ✅ Comparable |
|
|
55
|
+
| Framework Support | Django, Flask, FastAPI | React, Vue, Angular | ✅ Equivalent |
|
|
56
|
+
| Async Support | ✅ | ✅ | ✅ Equal |
|
|
57
|
+
| Type System | Type hints | TypeScript | ✅ Equivalent |
|
|
58
|
+
| Decorators | ✅ | Decorators/Annotations | ✅ Equivalent |
|
|
59
|
+
| Complexity Analysis | ✅ | ✅ | ✅ Equal |
|
|
60
|
+
| Caching & Performance | ✅ | ✅ | ✅ Equal |
|
|
61
|
+
|
|
62
|
+
### Supported Query Categories
|
|
63
|
+
**Python (70 queries)**:
|
|
64
|
+
- Functions: 3 types (regular, async, lambda)
|
|
65
|
+
- Classes: 4 types (class, method, constructor, property)
|
|
66
|
+
- Variables: 3 types (assignment, multiple, augmented)
|
|
67
|
+
- Imports: 5 types (import, from, aliased, star, list)
|
|
68
|
+
- Decorators: 4 types (simple, call, attribute, decorated)
|
|
69
|
+
- Control Flow: 7 types (if, for, while, with, async_with, async_for, try)
|
|
70
|
+
- Modern Features: 8 types (match/case, walrus, f-string, yield, await)
|
|
71
|
+
- Framework Patterns: 4 types (Django, Flask, FastAPI, dataclass)
|
|
72
|
+
|
|
73
|
+
**JavaScript (78 queries)**:
|
|
74
|
+
- Functions: 4 types (declaration, expression, arrow, generator)
|
|
75
|
+
- Classes: 5 types (class, method, constructor, getter, setter)
|
|
76
|
+
- Variables: 2 types (var, let/const)
|
|
77
|
+
- Imports/Exports: 9 types (various ES6+ patterns)
|
|
78
|
+
- Objects: 3 types (literal, property, computed)
|
|
79
|
+
- Control Flow: 7 types (if, for, while, switch, try, do)
|
|
80
|
+
- Modern Features: 8 types (template literals, spread, rest, await)
|
|
81
|
+
- Framework Patterns: 4 types (React, JSX, Node.js, module patterns)
|
|
82
|
+
|
|
83
|
+
## Testing Results
|
|
84
|
+
- **Query Coverage**: Python has 70 queries vs JavaScript's 78 (90% coverage)
|
|
85
|
+
- **Common Queries**: 19 shared query types between languages
|
|
86
|
+
- **Framework Support**: Both languages have equivalent framework-specific query support
|
|
87
|
+
- **Modern Features**: Both support latest language features (Python 3.10+, ES2022+)
|
|
88
|
+
|
|
89
|
+
## Usage Examples
|
|
90
|
+
|
|
91
|
+
### Analyzing Python Files
|
|
92
|
+
```bash
|
|
93
|
+
# Basic analysis
|
|
94
|
+
tree-sitter-analyzer analyze sample.py --language python
|
|
95
|
+
|
|
96
|
+
# Advanced analysis with table output
|
|
97
|
+
tree-sitter-analyzer analyze sample.py --language python --table full
|
|
98
|
+
|
|
99
|
+
# Query specific patterns
|
|
100
|
+
tree-sitter-analyzer query sample.py --language python --query async_function
|
|
101
|
+
tree-sitter-analyzer query sample.py --language python --query django_model
|
|
102
|
+
tree-sitter-analyzer query sample.py --language python --query decorator
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Supported Python Features
|
|
106
|
+
- ✅ Functions (regular, async, lambda)
|
|
107
|
+
- ✅ Classes (inheritance, decorators, dataclasses)
|
|
108
|
+
- ✅ Type hints and annotations
|
|
109
|
+
- ✅ Decorators (@property, @staticmethod, @classmethod, custom)
|
|
110
|
+
- ✅ Context managers (with statements)
|
|
111
|
+
- ✅ Exception handling (try/except/finally)
|
|
112
|
+
- ✅ Comprehensions (list, dict, set, generator)
|
|
113
|
+
- ✅ Modern syntax (match/case, walrus operator, f-strings)
|
|
114
|
+
- ✅ Framework patterns (Django, Flask, FastAPI)
|
|
115
|
+
- ✅ Async/await patterns
|
|
116
|
+
- ✅ Import variations (import, from, aliased, star)
|
|
117
|
+
|
|
118
|
+
## Conclusion
|
|
119
|
+
Python language support now matches JavaScript capabilities with:
|
|
120
|
+
- **Comprehensive feature coverage** for modern Python (3.8+)
|
|
121
|
+
- **Framework-specific analysis** for popular Python frameworks
|
|
122
|
+
- **Performance optimizations** matching JavaScript plugin
|
|
123
|
+
- **Rich query library** with 70+ specialized queries
|
|
124
|
+
- **Enhanced formatting** with Python-specific display features
|
|
125
|
+
|
|
126
|
+
The Python plugin is now at the same level as the JavaScript plugin, providing consistent and comprehensive code analysis capabilities across both languages.
|