tree-sitter-analyzer 1.3.6__tar.gz → 1.3.8__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.3.6 → tree_sitter_analyzer-1.3.8}/CHANGELOG.md +41 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/PKG-INFO +133 -48
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/README.md +86 -9
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/README_ja.md +82 -5
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/README_zh.md +82 -5
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/pyproject.toml +35 -32
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/__init__.py +1 -1
- tree_sitter_analyzer-1.3.8/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +187 -0
- tree_sitter_analyzer-1.3.8/tree_sitter_analyzer/cli/commands/list_files_cli.py +134 -0
- tree_sitter_analyzer-1.3.8/tree_sitter_analyzer/cli/commands/search_content_cli.py +160 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/language_loader.py +27 -6
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +15 -1
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/output_manager.py +4 -6
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/uv.lock +31 -31
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.gitignore +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/docs/mcp_fd_rg_design.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/training/README.md +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/core/query_service.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/server.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/tree_sitter_analyzer/utils.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/upload_interactive.py +0 -0
- {tree_sitter_analyzer-1.3.6 → tree_sitter_analyzer-1.3.8}/upload_to_pypi.py +0 -0
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.8] - 2025-01-18
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **🆕 New CLI Commands**: Added standalone CLI wrappers for MCP FD/RG tools
|
|
7
|
+
- `list-files`: CLI wrapper for `ListFilesTool` (fd functionality)
|
|
8
|
+
- `search-content`: CLI wrapper for `SearchContentTool` (ripgrep functionality)
|
|
9
|
+
- `find-and-grep`: CLI wrapper for `FindAndGrepTool` (fd → ripgrep composition)
|
|
10
|
+
- **🔧 CLI Integration**: All new CLI commands are registered as independent entry points in `pyproject.toml`
|
|
11
|
+
- **📋 Comprehensive Testing**: Added extensive CLI functionality testing with 1797 tests and 74.46% coverage
|
|
12
|
+
|
|
13
|
+
### Enhanced
|
|
14
|
+
- **🎯 CLI Functionality**: Improved CLI interface with better error handling and output formatting
|
|
15
|
+
- **🛡️ Security**: All CLI commands inherit MCP tool security boundaries and project root detection
|
|
16
|
+
- **📊 Quality Metrics**: Maintained high test coverage and code quality standards
|
|
17
|
+
|
|
18
|
+
### Technical Details
|
|
19
|
+
- **Architecture**: New CLI commands use adapter pattern to wrap MCP tools
|
|
20
|
+
- **Entry Points**: Registered in `[project.scripts]` section of `pyproject.toml`
|
|
21
|
+
- **Safety**: All commands include project boundary validation and error handling
|
|
22
|
+
- **Files Added**:
|
|
23
|
+
- `tree_sitter_analyzer/cli/commands/list_files_cli.py`
|
|
24
|
+
- `tree_sitter_analyzer/cli/commands/search_content_cli.py`
|
|
25
|
+
- `tree_sitter_analyzer/cli/commands/find_and_grep_cli.py`
|
|
26
|
+
|
|
27
|
+
This release provides users with direct access to powerful file system operations through dedicated CLI tools while maintaining the security and reliability of the MCP architecture.
|
|
28
|
+
|
|
29
|
+
## [1.3.7] - 2025-01-15
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
- **🔍 Search Content Files Parameter Bug**: Fixed critical issue where `search_content` tool with `files` parameter would search all files in parent directory instead of only specified files
|
|
33
|
+
- **🎯 File Filtering**: Added glob pattern filtering to restrict search scope to exactly the files specified in the `files` parameter
|
|
34
|
+
- **🛡️ Special Character Handling**: Properly escape special characters in filenames for glob pattern matching
|
|
35
|
+
|
|
36
|
+
### Technical Details
|
|
37
|
+
- **Root Cause**: When using `files` parameter, the tool was extracting parent directories as search roots but not filtering the search to only the specified files
|
|
38
|
+
- **Solution**: Added file-specific glob patterns to `include_globs` parameter to restrict ripgrep search scope
|
|
39
|
+
- **Impact**: `search_content` tool now correctly searches only the files specified in the `files` parameter
|
|
40
|
+
- **Files Modified**: `tree_sitter_analyzer/mcp/tools/search_content_tool.py`
|
|
41
|
+
|
|
42
|
+
This hotfix resolves a critical bug that was causing incorrect search results when using the `files` parameter in the `search_content` tool.
|
|
43
|
+
|
|
3
44
|
## [1.3.6] - 2025-09-17
|
|
4
45
|
|
|
5
46
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tree-sitter-analyzer
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.8
|
|
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
|
|
@@ -34,10 +34,10 @@ Requires-Python: >=3.10
|
|
|
34
34
|
Requires-Dist: cachetools>=5.0.0
|
|
35
35
|
Requires-Dist: chardet>=5.0.0
|
|
36
36
|
Requires-Dist: mcp>=1.12.3
|
|
37
|
-
Requires-Dist: tree-sitter-cpp
|
|
38
|
-
Requires-Dist: tree-sitter-java
|
|
39
|
-
Requires-Dist: tree-sitter-javascript
|
|
40
|
-
Requires-Dist: tree-sitter-python
|
|
37
|
+
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4
|
|
38
|
+
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5
|
|
39
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1
|
|
40
|
+
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.6
|
|
41
41
|
Requires-Dist: tree-sitter==0.24.0
|
|
42
42
|
Provides-Extra: all
|
|
43
43
|
Requires-Dist: anyio>=4.0.0; extra == 'all'
|
|
@@ -56,28 +56,32 @@ Requires-Dist: pytest-cov>=4.0.0; extra == 'all'
|
|
|
56
56
|
Requires-Dist: pytest-mock>=3.14.1; extra == 'all'
|
|
57
57
|
Requires-Dist: pytest>=8.4.1; extra == 'all'
|
|
58
58
|
Requires-Dist: ruff>=0.5.0; extra == 'all'
|
|
59
|
-
Requires-Dist: tree-sitter-c
|
|
59
|
+
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'all'
|
|
60
|
+
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'all'
|
|
60
61
|
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'all'
|
|
61
|
-
Requires-Dist: tree-sitter-go
|
|
62
|
+
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'all'
|
|
63
|
+
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'all'
|
|
62
64
|
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'all'
|
|
65
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'all'
|
|
63
66
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'all'
|
|
67
|
+
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'all'
|
|
64
68
|
Requires-Dist: tree-sitter-python>=0.23.0; extra == 'all'
|
|
65
|
-
Requires-Dist: tree-sitter-rust
|
|
66
|
-
Requires-Dist: tree-sitter-typescript
|
|
69
|
+
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'all'
|
|
70
|
+
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'all'
|
|
67
71
|
Requires-Dist: types-psutil>=5.9.0; extra == 'all'
|
|
68
72
|
Provides-Extra: all-languages
|
|
69
|
-
Requires-Dist: tree-sitter-c
|
|
70
|
-
Requires-Dist: tree-sitter-cpp
|
|
71
|
-
Requires-Dist: tree-sitter-go
|
|
72
|
-
Requires-Dist: tree-sitter-java
|
|
73
|
-
Requires-Dist: tree-sitter-javascript
|
|
74
|
-
Requires-Dist: tree-sitter-python
|
|
75
|
-
Requires-Dist: tree-sitter-rust
|
|
76
|
-
Requires-Dist: tree-sitter-typescript
|
|
73
|
+
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'all-languages'
|
|
74
|
+
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'all-languages'
|
|
75
|
+
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'all-languages'
|
|
76
|
+
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'all-languages'
|
|
77
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'all-languages'
|
|
78
|
+
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'all-languages'
|
|
79
|
+
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'all-languages'
|
|
80
|
+
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'all-languages'
|
|
77
81
|
Provides-Extra: c
|
|
78
|
-
Requires-Dist: tree-sitter-c
|
|
82
|
+
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'c'
|
|
79
83
|
Provides-Extra: cpp
|
|
80
|
-
Requires-Dist: tree-sitter-cpp
|
|
84
|
+
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'cpp'
|
|
81
85
|
Provides-Extra: dev
|
|
82
86
|
Requires-Dist: black>=24.0.0; extra == 'dev'
|
|
83
87
|
Requires-Dist: isort>=5.13.0; extra == 'dev'
|
|
@@ -108,21 +112,25 @@ Requires-Dist: pytest-cov>=4.0.0; extra == 'full'
|
|
|
108
112
|
Requires-Dist: pytest-mock>=3.14.1; extra == 'full'
|
|
109
113
|
Requires-Dist: pytest>=8.4.1; extra == 'full'
|
|
110
114
|
Requires-Dist: ruff>=0.5.0; extra == 'full'
|
|
111
|
-
Requires-Dist: tree-sitter-c
|
|
115
|
+
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'full'
|
|
116
|
+
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'full'
|
|
112
117
|
Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'full'
|
|
113
|
-
Requires-Dist: tree-sitter-go
|
|
118
|
+
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'full'
|
|
119
|
+
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'full'
|
|
114
120
|
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'full'
|
|
121
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'full'
|
|
115
122
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'full'
|
|
123
|
+
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'full'
|
|
116
124
|
Requires-Dist: tree-sitter-python>=0.23.0; extra == 'full'
|
|
117
|
-
Requires-Dist: tree-sitter-rust
|
|
118
|
-
Requires-Dist: tree-sitter-typescript
|
|
125
|
+
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'full'
|
|
126
|
+
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'full'
|
|
119
127
|
Requires-Dist: types-psutil>=5.9.0; extra == 'full'
|
|
120
128
|
Provides-Extra: go
|
|
121
|
-
Requires-Dist: tree-sitter-go
|
|
129
|
+
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'go'
|
|
122
130
|
Provides-Extra: java
|
|
123
|
-
Requires-Dist: tree-sitter-java
|
|
131
|
+
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'java'
|
|
124
132
|
Provides-Extra: javascript
|
|
125
|
-
Requires-Dist: tree-sitter-javascript
|
|
133
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'javascript'
|
|
126
134
|
Provides-Extra: mcp
|
|
127
135
|
Requires-Dist: anyio>=4.0.0; extra == 'mcp'
|
|
128
136
|
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == 'mcp'
|
|
@@ -130,19 +138,19 @@ Requires-Dist: mcp>=1.12.2; extra == 'mcp'
|
|
|
130
138
|
Requires-Dist: pydantic-settings>=2.2.1; extra == 'mcp'
|
|
131
139
|
Requires-Dist: pydantic>=2.5.0; extra == 'mcp'
|
|
132
140
|
Provides-Extra: popular
|
|
133
|
-
Requires-Dist: tree-sitter-java
|
|
134
|
-
Requires-Dist: tree-sitter-javascript
|
|
135
|
-
Requires-Dist: tree-sitter-python
|
|
136
|
-
Requires-Dist: tree-sitter-typescript
|
|
141
|
+
Requires-Dist: tree-sitter-java<0.25.0,>=0.23.5; extra == 'popular'
|
|
142
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'popular'
|
|
143
|
+
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'popular'
|
|
144
|
+
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'popular'
|
|
137
145
|
Provides-Extra: python
|
|
138
|
-
Requires-Dist: tree-sitter-python
|
|
146
|
+
Requires-Dist: tree-sitter-python<0.25.0,>=0.23.0; extra == 'python'
|
|
139
147
|
Provides-Extra: rust
|
|
140
|
-
Requires-Dist: tree-sitter-rust
|
|
148
|
+
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'rust'
|
|
141
149
|
Provides-Extra: systems
|
|
142
|
-
Requires-Dist: tree-sitter-c
|
|
143
|
-
Requires-Dist: tree-sitter-cpp
|
|
144
|
-
Requires-Dist: tree-sitter-go
|
|
145
|
-
Requires-Dist: tree-sitter-rust
|
|
150
|
+
Requires-Dist: tree-sitter-c<0.25.0,>=0.20.0; extra == 'systems'
|
|
151
|
+
Requires-Dist: tree-sitter-cpp<0.25.0,>=0.23.4; extra == 'systems'
|
|
152
|
+
Requires-Dist: tree-sitter-go<0.25.0,>=0.20.0; extra == 'systems'
|
|
153
|
+
Requires-Dist: tree-sitter-rust<0.25.0,>=0.20.0; extra == 'systems'
|
|
146
154
|
Provides-Extra: test
|
|
147
155
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == 'test'
|
|
148
156
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
|
|
@@ -153,21 +161,21 @@ Requires-Dist: tree-sitter-java>=0.23.5; extra == 'test'
|
|
|
153
161
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'test'
|
|
154
162
|
Requires-Dist: tree-sitter-python>=0.23.0; extra == 'test'
|
|
155
163
|
Provides-Extra: typescript
|
|
156
|
-
Requires-Dist: tree-sitter-typescript
|
|
164
|
+
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'typescript'
|
|
157
165
|
Provides-Extra: web
|
|
158
|
-
Requires-Dist: tree-sitter-javascript
|
|
159
|
-
Requires-Dist: tree-sitter-typescript
|
|
166
|
+
Requires-Dist: tree-sitter-javascript<0.25.0,>=0.23.1; extra == 'web'
|
|
167
|
+
Requires-Dist: tree-sitter-typescript<0.25.0,>=0.20.0; extra == 'web'
|
|
160
168
|
Description-Content-Type: text/markdown
|
|
161
169
|
|
|
162
170
|
# Tree-sitter Analyzer
|
|
163
171
|
|
|
164
172
|
[](https://python.org)
|
|
165
173
|
[](LICENSE)
|
|
166
|
-
[](#quality-assurance)
|
|
175
|
+
[](#quality-assurance)
|
|
168
176
|
[](#quality-assurance)
|
|
169
177
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
170
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
171
179
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
172
180
|
|
|
173
181
|
## 🚀 Break LLM Token Limits, Let AI Understand Code Files of Any Size
|
|
@@ -229,6 +237,64 @@ Total Elements: 85 | Complexity: 348 (avg: 5.27, max: 15)
|
|
|
229
237
|
|
|
230
238
|
---
|
|
231
239
|
|
|
240
|
+
## 🆕 New CLI Commands (v1.3.8+)
|
|
241
|
+
|
|
242
|
+
### 🔧 **Standalone CLI Tools for File System Operations**
|
|
243
|
+
|
|
244
|
+
Tree-sitter Analyzer now provides dedicated CLI commands that wrap powerful MCP tools for file system operations:
|
|
245
|
+
|
|
246
|
+
#### 📁 **`list-files`** - File Discovery with fd
|
|
247
|
+
```bash
|
|
248
|
+
# List all Java files in current directory
|
|
249
|
+
list-files . --extensions java
|
|
250
|
+
|
|
251
|
+
# Find test files with specific naming patterns
|
|
252
|
+
list-files src --pattern "test_*" --extensions java --types f
|
|
253
|
+
|
|
254
|
+
# Find large files modified in the last week
|
|
255
|
+
list-files . --types f --size "+1k" --changed-within "1week"
|
|
256
|
+
|
|
257
|
+
# Find service classes with specific naming patterns
|
|
258
|
+
list-files src --pattern "*Service*" --extensions java --output-format json
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### 🔍 **`search-content`** - Content Search with ripgrep
|
|
262
|
+
```bash
|
|
263
|
+
# Search for class definitions in Java files
|
|
264
|
+
search-content --roots . --query "class.*extends" --include-globs "*.java"
|
|
265
|
+
|
|
266
|
+
# Find TODO comments with context
|
|
267
|
+
search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2
|
|
268
|
+
|
|
269
|
+
# Search in specific files with case-insensitive matching
|
|
270
|
+
search-content --files file1.java file2.java --query "public.*method" --case insensitive
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
#### 🎯 **`find-and-grep`** - Two-Stage Search (fd → ripgrep)
|
|
274
|
+
```bash
|
|
275
|
+
# Find Java files first, then search for Spring annotations
|
|
276
|
+
find-and-grep --roots . --query "@SpringBootApplication" --extensions java
|
|
277
|
+
|
|
278
|
+
# Combined file filtering and content search with limits
|
|
279
|
+
find-and-grep --roots src --query "import.*spring" --extensions java --file-limit 10 --max-count 5
|
|
280
|
+
|
|
281
|
+
# Advanced search with multiple filters
|
|
282
|
+
find-and-grep --roots . --query "public.*static.*void" --extensions java --types f --size "+500" --output-format json
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### 🛡️ **Security & Safety Features**
|
|
286
|
+
- **Project Boundary Detection**: All commands automatically detect and respect project boundaries
|
|
287
|
+
- **Input Validation**: Comprehensive parameter validation and sanitization
|
|
288
|
+
- **Error Handling**: Graceful error handling with informative messages
|
|
289
|
+
- **Resource Limits**: Built-in limits to prevent resource exhaustion
|
|
290
|
+
|
|
291
|
+
### 📊 **Output Formats**
|
|
292
|
+
- **JSON**: Structured output for programmatic processing
|
|
293
|
+
- **Text**: Human-readable output for terminal use
|
|
294
|
+
- **Quiet Mode**: Suppress non-essential output for scripting
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
232
298
|
## 🚀 30-Second Quick Start
|
|
233
299
|
|
|
234
300
|
### 🤖 AI Users (Claude Desktop, Cursor, etc.)
|
|
@@ -678,6 +744,25 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --query-key metho
|
|
|
678
744
|
|
|
679
745
|
# View filter syntax help
|
|
680
746
|
uv run python -m tree_sitter_analyzer --filter-help
|
|
747
|
+
|
|
748
|
+
# 🆕 New CLI Commands (v1.3.8+)
|
|
749
|
+
# File listing with fd functionality
|
|
750
|
+
list-files . --extensions java --output-format json
|
|
751
|
+
|
|
752
|
+
# Content search with ripgrep functionality
|
|
753
|
+
search-content --roots . --query "class.*extends" --include-globs "*.java" --output-format text
|
|
754
|
+
|
|
755
|
+
# Two-stage search: find files first, then search content
|
|
756
|
+
find-and-grep --roots . --query "public.*method" --extensions java --output-format json
|
|
757
|
+
|
|
758
|
+
# Advanced file filtering
|
|
759
|
+
list-files . --types f --size "+1k" --changed-within "1week" --hidden --output-format text
|
|
760
|
+
|
|
761
|
+
# Content search with context
|
|
762
|
+
search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2 --output-format json
|
|
763
|
+
|
|
764
|
+
# Combined file and content search with limits
|
|
765
|
+
find-and-grep --roots . --query "import.*spring" --extensions java --file-limit 10 --max-count 5 --output-format text
|
|
681
766
|
```
|
|
682
767
|
|
|
683
768
|
---
|
|
@@ -915,16 +1000,16 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
915
1000
|
## 🏆 Quality Assurance
|
|
916
1001
|
|
|
917
1002
|
### 📊 **Quality Metrics**
|
|
918
|
-
- **1,
|
|
919
|
-
- **74.
|
|
1003
|
+
- **1,797 tests** - 100% pass rate ✅
|
|
1004
|
+
- **74.46% code coverage** - Industry-leading level
|
|
920
1005
|
- **Zero test failures** - Fully CI/CD ready
|
|
921
1006
|
- **Cross-platform compatibility** - Windows, macOS, Linux
|
|
922
1007
|
|
|
923
|
-
### ⚡ **Latest Quality Achievements (v1.3.
|
|
1008
|
+
### ⚡ **Latest Quality Achievements (v1.3.8)**
|
|
924
1009
|
- ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
|
|
925
1010
|
- ✅ **Windows environment** - Implemented robust path normalization using Windows API
|
|
926
1011
|
- ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
|
|
927
|
-
- ✅ **Comprehensive test coverage** -
|
|
1012
|
+
- ✅ **Comprehensive test coverage** - 1797 tests, 74.46% coverage
|
|
928
1013
|
- ✅ **GitFlow implementation** - Professional development/release branch strategy. See [GitFlow documentation](GITFLOW.md) for details.
|
|
929
1014
|
|
|
930
1015
|
### ⚙️ **Running Tests**
|
|
@@ -1041,9 +1126,9 @@ All AI prompts in this document have been thoroughly tested in real environments
|
|
|
1041
1126
|
|
|
1042
1127
|
**Test Environment:**
|
|
1043
1128
|
- Operating System: Windows 10
|
|
1044
|
-
- Project: tree-sitter-analyzer v1.3.
|
|
1129
|
+
- Project: tree-sitter-analyzer v1.3.8
|
|
1045
1130
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
1046
|
-
- Test Coverage:
|
|
1131
|
+
- Test Coverage: 1797 tests passed, 74.46% coverage
|
|
1047
1132
|
- Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
|
|
1048
1133
|
|
|
1049
1134
|
**🚀 Start Now** → [30-Second Quick Start](#-30-second-quick-start)
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://python.org)
|
|
4
4
|
[](LICENSE)
|
|
5
|
-
[](#quality-assurance)
|
|
6
|
+
[](#quality-assurance)
|
|
7
7
|
[](#quality-assurance)
|
|
8
8
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
9
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
10
10
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
11
11
|
|
|
12
12
|
## 🚀 Break LLM Token Limits, Let AI Understand Code Files of Any Size
|
|
@@ -68,6 +68,64 @@ Total Elements: 85 | Complexity: 348 (avg: 5.27, max: 15)
|
|
|
68
68
|
|
|
69
69
|
---
|
|
70
70
|
|
|
71
|
+
## 🆕 New CLI Commands (v1.3.8+)
|
|
72
|
+
|
|
73
|
+
### 🔧 **Standalone CLI Tools for File System Operations**
|
|
74
|
+
|
|
75
|
+
Tree-sitter Analyzer now provides dedicated CLI commands that wrap powerful MCP tools for file system operations:
|
|
76
|
+
|
|
77
|
+
#### 📁 **`list-files`** - File Discovery with fd
|
|
78
|
+
```bash
|
|
79
|
+
# List all Java files in current directory
|
|
80
|
+
list-files . --extensions java
|
|
81
|
+
|
|
82
|
+
# Find test files with specific naming patterns
|
|
83
|
+
list-files src --pattern "test_*" --extensions java --types f
|
|
84
|
+
|
|
85
|
+
# Find large files modified in the last week
|
|
86
|
+
list-files . --types f --size "+1k" --changed-within "1week"
|
|
87
|
+
|
|
88
|
+
# Find service classes with specific naming patterns
|
|
89
|
+
list-files src --pattern "*Service*" --extensions java --output-format json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### 🔍 **`search-content`** - Content Search with ripgrep
|
|
93
|
+
```bash
|
|
94
|
+
# Search for class definitions in Java files
|
|
95
|
+
search-content --roots . --query "class.*extends" --include-globs "*.java"
|
|
96
|
+
|
|
97
|
+
# Find TODO comments with context
|
|
98
|
+
search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2
|
|
99
|
+
|
|
100
|
+
# Search in specific files with case-insensitive matching
|
|
101
|
+
search-content --files file1.java file2.java --query "public.*method" --case insensitive
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### 🎯 **`find-and-grep`** - Two-Stage Search (fd → ripgrep)
|
|
105
|
+
```bash
|
|
106
|
+
# Find Java files first, then search for Spring annotations
|
|
107
|
+
find-and-grep --roots . --query "@SpringBootApplication" --extensions java
|
|
108
|
+
|
|
109
|
+
# Combined file filtering and content search with limits
|
|
110
|
+
find-and-grep --roots src --query "import.*spring" --extensions java --file-limit 10 --max-count 5
|
|
111
|
+
|
|
112
|
+
# Advanced search with multiple filters
|
|
113
|
+
find-and-grep --roots . --query "public.*static.*void" --extensions java --types f --size "+500" --output-format json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 🛡️ **Security & Safety Features**
|
|
117
|
+
- **Project Boundary Detection**: All commands automatically detect and respect project boundaries
|
|
118
|
+
- **Input Validation**: Comprehensive parameter validation and sanitization
|
|
119
|
+
- **Error Handling**: Graceful error handling with informative messages
|
|
120
|
+
- **Resource Limits**: Built-in limits to prevent resource exhaustion
|
|
121
|
+
|
|
122
|
+
### 📊 **Output Formats**
|
|
123
|
+
- **JSON**: Structured output for programmatic processing
|
|
124
|
+
- **Text**: Human-readable output for terminal use
|
|
125
|
+
- **Quiet Mode**: Suppress non-essential output for scripting
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
71
129
|
## 🚀 30-Second Quick Start
|
|
72
130
|
|
|
73
131
|
### 🤖 AI Users (Claude Desktop, Cursor, etc.)
|
|
@@ -517,6 +575,25 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --query-key metho
|
|
|
517
575
|
|
|
518
576
|
# View filter syntax help
|
|
519
577
|
uv run python -m tree_sitter_analyzer --filter-help
|
|
578
|
+
|
|
579
|
+
# 🆕 New CLI Commands (v1.3.8+)
|
|
580
|
+
# File listing with fd functionality
|
|
581
|
+
list-files . --extensions java --output-format json
|
|
582
|
+
|
|
583
|
+
# Content search with ripgrep functionality
|
|
584
|
+
search-content --roots . --query "class.*extends" --include-globs "*.java" --output-format text
|
|
585
|
+
|
|
586
|
+
# Two-stage search: find files first, then search content
|
|
587
|
+
find-and-grep --roots . --query "public.*method" --extensions java --output-format json
|
|
588
|
+
|
|
589
|
+
# Advanced file filtering
|
|
590
|
+
list-files . --types f --size "+1k" --changed-within "1week" --hidden --output-format text
|
|
591
|
+
|
|
592
|
+
# Content search with context
|
|
593
|
+
search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2 --output-format json
|
|
594
|
+
|
|
595
|
+
# Combined file and content search with limits
|
|
596
|
+
find-and-grep --roots . --query "import.*spring" --extensions java --file-limit 10 --max-count 5 --output-format text
|
|
520
597
|
```
|
|
521
598
|
|
|
522
599
|
---
|
|
@@ -754,16 +831,16 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
754
831
|
## 🏆 Quality Assurance
|
|
755
832
|
|
|
756
833
|
### 📊 **Quality Metrics**
|
|
757
|
-
- **1,
|
|
758
|
-
- **74.
|
|
834
|
+
- **1,797 tests** - 100% pass rate ✅
|
|
835
|
+
- **74.46% code coverage** - Industry-leading level
|
|
759
836
|
- **Zero test failures** - Fully CI/CD ready
|
|
760
837
|
- **Cross-platform compatibility** - Windows, macOS, Linux
|
|
761
838
|
|
|
762
|
-
### ⚡ **Latest Quality Achievements (v1.3.
|
|
839
|
+
### ⚡ **Latest Quality Achievements (v1.3.8)**
|
|
763
840
|
- ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
|
|
764
841
|
- ✅ **Windows environment** - Implemented robust path normalization using Windows API
|
|
765
842
|
- ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
|
|
766
|
-
- ✅ **Comprehensive test coverage** -
|
|
843
|
+
- ✅ **Comprehensive test coverage** - 1797 tests, 74.46% coverage
|
|
767
844
|
- ✅ **GitFlow implementation** - Professional development/release branch strategy. See [GitFlow documentation](GITFLOW.md) for details.
|
|
768
845
|
|
|
769
846
|
### ⚙️ **Running Tests**
|
|
@@ -880,9 +957,9 @@ All AI prompts in this document have been thoroughly tested in real environments
|
|
|
880
957
|
|
|
881
958
|
**Test Environment:**
|
|
882
959
|
- Operating System: Windows 10
|
|
883
|
-
- Project: tree-sitter-analyzer v1.3.
|
|
960
|
+
- Project: tree-sitter-analyzer v1.3.8
|
|
884
961
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
885
|
-
- Test Coverage:
|
|
962
|
+
- Test Coverage: 1797 tests passed, 74.46% coverage
|
|
886
963
|
- Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
|
|
887
964
|
|
|
888
965
|
**🚀 Start Now** → [30-Second Quick Start](#-30-second-quick-start)
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://python.org)
|
|
4
4
|
[](LICENSE)
|
|
5
|
-
[](#品質保証)
|
|
6
|
+
[](#品質保証)
|
|
7
7
|
[](#品質保証)
|
|
8
8
|
[](https://pypi.org/project/tree-sitter-analyzer/)
|
|
9
|
-
[](https://github.com/aimasteracc/tree-sitter-analyzer/releases)
|
|
10
10
|
[](https://github.com/aimasteracc/tree-sitter-analyzer)
|
|
11
11
|
|
|
12
12
|
## 🚀 LLMトークン制限を突破し、AIにあらゆるサイズのコードファイルを理解させる
|
|
@@ -68,6 +68,64 @@ Total Elements: 85 | Complexity: 348 (avg: 5.27, max: 15)
|
|
|
68
68
|
|
|
69
69
|
---
|
|
70
70
|
|
|
71
|
+
## 🆕 新CLIコマンド (v1.3.8+)
|
|
72
|
+
|
|
73
|
+
### 🔧 **ファイルシステム操作専用CLIツール**
|
|
74
|
+
|
|
75
|
+
Tree-sitter Analyzer は、強力なMCPツールをラップしてファイルシステム操作を行う専用CLIコマンドを提供します:
|
|
76
|
+
|
|
77
|
+
#### 📁 **`list-files`** - fdによるファイル発見
|
|
78
|
+
```bash
|
|
79
|
+
# 現在のディレクトリ内のすべてのJavaファイルをリスト表示
|
|
80
|
+
list-files . --extensions java
|
|
81
|
+
|
|
82
|
+
# 特定の命名パターンのテストファイルを検索
|
|
83
|
+
list-files src --pattern "test_*" --extensions java --types f
|
|
84
|
+
|
|
85
|
+
# 過去1週間に変更された大きなファイルを検索
|
|
86
|
+
list-files . --types f --size "+1k" --changed-within "1week"
|
|
87
|
+
|
|
88
|
+
# 特定の命名パターンのサービスクラスを検索
|
|
89
|
+
list-files src --pattern "*Service*" --extensions java --output-format json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### 🔍 **`search-content`** - ripgrepによるコンテンツ検索
|
|
93
|
+
```bash
|
|
94
|
+
# Javaファイル内でクラス定義を検索
|
|
95
|
+
search-content --roots . --query "class.*extends" --include-globs "*.java"
|
|
96
|
+
|
|
97
|
+
# TODOコメントを検索し、コンテキストを表示
|
|
98
|
+
search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2
|
|
99
|
+
|
|
100
|
+
# 特定のファイル内で大文字小文字を区別しない検索
|
|
101
|
+
search-content --files file1.java file2.java --query "public.*method" --case insensitive
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### 🎯 **`find-and-grep`** - 2段階検索 (fd → ripgrep)
|
|
105
|
+
```bash
|
|
106
|
+
# まずJavaファイルを検索し、次にSpringアノテーションを検索
|
|
107
|
+
find-and-grep --roots . --query "@SpringBootApplication" --extensions java
|
|
108
|
+
|
|
109
|
+
# ファイルフィルタリングとコンテンツ検索を組み合わせ、制限付き
|
|
110
|
+
find-and-grep --roots src --query "import.*spring" --extensions java --file-limit 10 --max-count 5
|
|
111
|
+
|
|
112
|
+
# 複数のフィルターを使用した高度な検索
|
|
113
|
+
find-and-grep --roots . --query "public.*static.*void" --extensions java --types f --size "+500" --output-format json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 🛡️ **セキュリティ・安全機能**
|
|
117
|
+
- **プロジェクト境界検出**:すべてのコマンドが自動的にプロジェクト境界を検出し、尊重します
|
|
118
|
+
- **入力検証**:包括的なパラメータ検証とサニタイゼーション
|
|
119
|
+
- **エラーハンドリング**:情報豊富なメッセージによる優雅なエラーハンドリング
|
|
120
|
+
- **リソース制限**:リソース枯渇を防ぐための組み込み制限
|
|
121
|
+
|
|
122
|
+
### 📊 **出力形式**
|
|
123
|
+
- **JSON**:プログラム処理用の構造化出力
|
|
124
|
+
- **Text**:ターミナル使用用の人間が読める出力
|
|
125
|
+
- **Quietモード**:スクリプト用の非必須出力を抑制
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
71
129
|
## 🚀 30秒クイックスタート
|
|
72
130
|
|
|
73
131
|
### 🤖 AIユーザー(Claude Desktop、Cursorなど)
|
|
@@ -505,6 +563,25 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --query-key metho
|
|
|
505
563
|
|
|
506
564
|
# フィルター構文ヘルプを表示
|
|
507
565
|
uv run python -m tree_sitter_analyzer --filter-help
|
|
566
|
+
|
|
567
|
+
# 🆕 新CLIコマンド (v1.3.8+)
|
|
568
|
+
# fd機能を使用したファイルリスト表示
|
|
569
|
+
list-files . --extensions java --output-format json
|
|
570
|
+
|
|
571
|
+
# ripgrep機能を使用したコンテンツ検索
|
|
572
|
+
search-content --roots . --query "class.*extends" --include-globs "*.java" --output-format text
|
|
573
|
+
|
|
574
|
+
# 2段階検索:まずファイルを検索し、次にコンテンツを検索
|
|
575
|
+
find-and-grep --roots . --query "public.*method" --extensions java --output-format json
|
|
576
|
+
|
|
577
|
+
# 高度なファイルフィルタリング
|
|
578
|
+
list-files . --types f --size "+1k" --changed-within "1week" --hidden --output-format text
|
|
579
|
+
|
|
580
|
+
# コンテキスト付きコンテンツ検索
|
|
581
|
+
search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2 --output-format json
|
|
582
|
+
|
|
583
|
+
# ファイル検索とコンテンツ検索の組み合わせ、制限付き
|
|
584
|
+
find-and-grep --roots . --query "import.*spring" --extensions java --file-limit 10 --max-count 5 --output-format text
|
|
508
585
|
```
|
|
509
586
|
|
|
510
587
|
---
|
|
@@ -747,7 +824,7 @@ Tree-sitter Analyzerは自動的にプロジェクト境界を検出・保護:
|
|
|
747
824
|
- **ゼロテスト失敗** - 完全なCI/CD対応
|
|
748
825
|
- **クロスプラットフォーム対応** - Windows、macOS、Linux
|
|
749
826
|
|
|
750
|
-
### ⚡ **最新の品質成果(v1.3.
|
|
827
|
+
### ⚡ **最新の品質成果(v1.3.7)**
|
|
751
828
|
- ✅ **クロスプラットフォームパス互換性** - Windows短パス名とmacOSシンボリックリンクの違いを修正
|
|
752
829
|
- ✅ **Windows環境** - Windows APIを使用した堅牢なパス正規化を実装
|
|
753
830
|
- ✅ **macOS環境** - `/var`と`/private/var`シンボリックリンクの違いを修正
|
|
@@ -866,7 +943,7 @@ MITライセンス - 詳細は[LICENSE](LICENSE)ファイルをご覧くださ
|
|
|
866
943
|
|
|
867
944
|
**テスト環境:**
|
|
868
945
|
- オペレーティングシステム:Windows 10
|
|
869
|
-
- プロジェクト:tree-sitter-analyzer v1.3.
|
|
946
|
+
- プロジェクト:tree-sitter-analyzer v1.3.7
|
|
870
947
|
- テストファイル:BigService.java (1419行)、sample.py (256行)、MultiClass.java (54行)
|
|
871
948
|
- テストツール:すべてのMCPツール(check_code_scale、analyze_code_structure、extract_code_section、query_code)
|
|
872
949
|
|