tree-sitter-analyzer 1.3.7__tar.gz → 1.3.9__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.7 → tree_sitter_analyzer-1.3.9}/CHANGELOG.md +46 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/PKG-INFO +140 -48
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/README.md +93 -9
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/README_ja.md +82 -5
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/README_zh.md +82 -5
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/pyproject.toml +35 -32
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/__init__.py +1 -1
- tree_sitter_analyzer-1.3.9/tree_sitter_analyzer/cli/commands/find_and_grep_cli.py +187 -0
- tree_sitter_analyzer-1.3.9/tree_sitter_analyzer/cli/commands/list_files_cli.py +134 -0
- tree_sitter_analyzer-1.3.9/tree_sitter_analyzer/cli/commands/search_content_cli.py +160 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/language_loader.py +27 -6
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/output_manager.py +4 -6
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/uv.lock +31 -31
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.gitattributes +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.gitignore +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.kiro/steering/product.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.kiro/steering/structure.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.kiro/steering/tech.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.pre-commit-config.yaml +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/.pre-commit-hooks.yaml +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/AI_COLLABORATION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/CODE_STYLE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/CONTRIBUTING.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/DEPLOYMENT_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/GITFLOW.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/GITFLOW_ja.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/GITFLOW_zh.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/LANGUAGE_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/LLM_CODING_GUIDELINES.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/MCP_SETUP_DEVELOPERS.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/MCP_SETUP_USERS.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/PROJECT_ROOT_CONFIG.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/PYPI_RELEASE_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/REFACTORING_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/build_standalone.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/check_quality.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/docs/GITFLOW_BEST_PRACTICES.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/docs/RELEASE_EXECUTION_GUIDE.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/docs/api.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/docs/mcp_fd_rg_design.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/BigService.java +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/BigService.json +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/BigService.summary.json +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/JavaDocTest.java +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/MultiClass.java +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/Sample.java +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/cache_demo.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/calculate_token_comparison.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/project_root_demo.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/sample.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/security_demo.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/security_integration_demo.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/smart_cache_demo.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/examples/total_only_optimization_demo.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/llm_code_checker.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/pypirc_example.txt +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/pytest.ini +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/scripts/README.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/scripts/gitflow_helper.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/scripts/gitflow_release_automation.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/scripts/sync_version.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/scripts/sync_version_minimal.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/start_mcp_server.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/01_onboarding.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/02_architecture_map.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/03_cli_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/04_mcp_cheatsheet.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/05_plugin_tutorial.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/06_quality_workflow.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/07_troubleshooting.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/08_prompt_library.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/09_tasks.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/10_glossary.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/11_takeover_plan.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/CLI_COMMAND_CORRECTIONS.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/IMPROVEMENT_SUMMARY.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/training/README.md +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/__main__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/api.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/__main__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/advanced_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/base_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/default_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/partial_read_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/query_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/structure_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/summary_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/commands/table_command.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli/info_commands.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/cli_main.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/constants.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/analysis_engine.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/cache_service.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/engine.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/parser.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/query.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/query_filter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/core/query_service.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/encoding_utils.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/exceptions.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/file_handler.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/formatters/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/formatters/base_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/formatters/formatter_factory.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/formatters/java_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/formatters/python_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/interfaces/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/interfaces/cli.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/interfaces/cli_adapter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/interfaces/mcp_adapter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/interfaces/mcp_server.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/language_detector.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/languages/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/languages/java_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/languages/javascript_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/languages/python_plugin.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/resources/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/resources/code_file_resource.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/resources/project_stats_resource.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/server.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/base_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/fd_rg_utils.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/find_and_grep_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/list_files_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/query_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/read_partial_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/search_content_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/table_format_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/utils/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/utils/error_handler.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/utils/gitignore_detector.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/utils/path_resolver.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/mcp/utils/search_cache.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/models.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/plugins/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/plugins/base.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/plugins/manager.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/project_detector.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/queries/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/queries/java.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/queries/javascript.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/queries/python.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/queries/typescript.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/query_loader.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/security/__init__.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/security/boundary_manager.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/security/regex_checker.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/security/validator.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/table_formatter.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/tree_sitter_analyzer/utils.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/upload_interactive.py +0 -0
- {tree_sitter_analyzer-1.3.7 → tree_sitter_analyzer-1.3.9}/upload_to_pypi.py +0 -0
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.9] - 2025-01-18
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **📚 Documentation Fix**: Fixed CLI command examples in all README versions (EN, ZH, JA)
|
|
7
|
+
- **🔧 Usage Instructions**: Added `uv run` prefix to all CLI command examples for development environment
|
|
8
|
+
- **💡 User Experience**: Added clear usage notes explaining when to use `uv run` vs direct commands
|
|
9
|
+
- **🌐 Multi-language Support**: Updated English, Chinese, and Japanese documentation consistently
|
|
10
|
+
|
|
11
|
+
### Technical Details
|
|
12
|
+
- **Issue**: Users couldn't run CLI commands directly without `uv run` prefix in development
|
|
13
|
+
- **Solution**: Updated all command examples to include `uv run` prefix
|
|
14
|
+
- **Impact**: Eliminates user confusion and provides clear usage instructions
|
|
15
|
+
- **Files Modified**:
|
|
16
|
+
- `README.md` - English documentation
|
|
17
|
+
- `README_zh.md` - Chinese documentation
|
|
18
|
+
- `README_ja.md` - Japanese documentation
|
|
19
|
+
|
|
20
|
+
This patch release resolves documentation inconsistencies and improves user experience
|
|
21
|
+
by providing clear, working examples for CLI command usage in development environments.
|
|
22
|
+
|
|
23
|
+
## [1.3.8] - 2025-01-18
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **🆕 New CLI Commands**: Added standalone CLI wrappers for MCP FD/RG tools
|
|
27
|
+
- `list-files`: CLI wrapper for `ListFilesTool` (fd functionality)
|
|
28
|
+
- `search-content`: CLI wrapper for `SearchContentTool` (ripgrep functionality)
|
|
29
|
+
- `find-and-grep`: CLI wrapper for `FindAndGrepTool` (fd → ripgrep composition)
|
|
30
|
+
- **🔧 CLI Integration**: All new CLI commands are registered as independent entry points in `pyproject.toml`
|
|
31
|
+
- **📋 Comprehensive Testing**: Added extensive CLI functionality testing with 1797 tests and 74.46% coverage
|
|
32
|
+
|
|
33
|
+
### Enhanced
|
|
34
|
+
- **🎯 CLI Functionality**: Improved CLI interface with better error handling and output formatting
|
|
35
|
+
- **🛡️ Security**: All CLI commands inherit MCP tool security boundaries and project root detection
|
|
36
|
+
- **📊 Quality Metrics**: Maintained high test coverage and code quality standards
|
|
37
|
+
|
|
38
|
+
### Technical Details
|
|
39
|
+
- **Architecture**: New CLI commands use adapter pattern to wrap MCP tools
|
|
40
|
+
- **Entry Points**: Registered in `[project.scripts]` section of `pyproject.toml`
|
|
41
|
+
- **Safety**: All commands include project boundary validation and error handling
|
|
42
|
+
- **Files Added**:
|
|
43
|
+
- `tree_sitter_analyzer/cli/commands/list_files_cli.py`
|
|
44
|
+
- `tree_sitter_analyzer/cli/commands/search_content_cli.py`
|
|
45
|
+
- `tree_sitter_analyzer/cli/commands/find_and_grep_cli.py`
|
|
46
|
+
|
|
47
|
+
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.
|
|
48
|
+
|
|
3
49
|
## [1.3.7] - 2025-01-15
|
|
4
50
|
|
|
5
51
|
### 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.9
|
|
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,71 @@ 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
|
+
> **💡 Usage Note**: In development environments, use `uv run` prefix to execute CLI commands:
|
|
247
|
+
> - `uv run list-files` instead of `list-files`
|
|
248
|
+
> - `uv run search-content` instead of `search-content`
|
|
249
|
+
> - `uv run find-and-grep` instead of `find-and-grep`
|
|
250
|
+
>
|
|
251
|
+
> After installing from PyPI, these commands will be available directly in your PATH.
|
|
252
|
+
|
|
253
|
+
#### 📁 **`list-files`** - File Discovery with fd
|
|
254
|
+
```bash
|
|
255
|
+
# List all Java files in current directory
|
|
256
|
+
uv run list-files . --extensions java
|
|
257
|
+
|
|
258
|
+
# Find test files with specific naming patterns
|
|
259
|
+
uv run list-files src --pattern "test_*" --extensions java --types f
|
|
260
|
+
|
|
261
|
+
# Find large files modified in the last week
|
|
262
|
+
uv run list-files . --types f --size "+1k" --changed-within "1week"
|
|
263
|
+
|
|
264
|
+
# Find service classes with specific naming patterns
|
|
265
|
+
uv run list-files src --pattern "*Service*" --extensions java --output-format json
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### 🔍 **`search-content`** - Content Search with ripgrep
|
|
269
|
+
```bash
|
|
270
|
+
# Search for class definitions in Java files
|
|
271
|
+
uv run search-content --roots . --query "class.*extends" --include-globs "*.java"
|
|
272
|
+
|
|
273
|
+
# Find TODO comments with context
|
|
274
|
+
uv run search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2
|
|
275
|
+
|
|
276
|
+
# Search in specific files with case-insensitive matching
|
|
277
|
+
uv run search-content --files file1.java file2.java --query "public.*method" --case insensitive
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
#### 🎯 **`find-and-grep`** - Two-Stage Search (fd → ripgrep)
|
|
281
|
+
```bash
|
|
282
|
+
# Find Java files first, then search for Spring annotations
|
|
283
|
+
uv run find-and-grep --roots . --query "@SpringBootApplication" --extensions java
|
|
284
|
+
|
|
285
|
+
# Combined file filtering and content search with limits
|
|
286
|
+
uv run find-and-grep --roots src --query "import.*spring" --extensions java --file-limit 10 --max-count 5
|
|
287
|
+
|
|
288
|
+
# Advanced search with multiple filters
|
|
289
|
+
uv run find-and-grep --roots . --query "public.*static.*void" --extensions java --types f --size "+500" --output-format json
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### 🛡️ **Security & Safety Features**
|
|
293
|
+
- **Project Boundary Detection**: All commands automatically detect and respect project boundaries
|
|
294
|
+
- **Input Validation**: Comprehensive parameter validation and sanitization
|
|
295
|
+
- **Error Handling**: Graceful error handling with informative messages
|
|
296
|
+
- **Resource Limits**: Built-in limits to prevent resource exhaustion
|
|
297
|
+
|
|
298
|
+
### 📊 **Output Formats**
|
|
299
|
+
- **JSON**: Structured output for programmatic processing
|
|
300
|
+
- **Text**: Human-readable output for terminal use
|
|
301
|
+
- **Quiet Mode**: Suppress non-essential output for scripting
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
232
305
|
## 🚀 30-Second Quick Start
|
|
233
306
|
|
|
234
307
|
### 🤖 AI Users (Claude Desktop, Cursor, etc.)
|
|
@@ -678,6 +751,25 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --query-key metho
|
|
|
678
751
|
|
|
679
752
|
# View filter syntax help
|
|
680
753
|
uv run python -m tree_sitter_analyzer --filter-help
|
|
754
|
+
|
|
755
|
+
# 🆕 New CLI Commands (v1.3.8+)
|
|
756
|
+
# File listing with fd functionality
|
|
757
|
+
uv run list-files . --extensions java --output-format json
|
|
758
|
+
|
|
759
|
+
# Content search with ripgrep functionality
|
|
760
|
+
uv run search-content --roots . --query "class.*extends" --include-globs "*.java" --output-format text
|
|
761
|
+
|
|
762
|
+
# Two-stage search: find files first, then search content
|
|
763
|
+
uv run find-and-grep --roots . --query "public.*method" --extensions java --output-format json
|
|
764
|
+
|
|
765
|
+
# Advanced file filtering
|
|
766
|
+
uv run list-files . --types f --size "+1k" --changed-within "1week" --hidden --output-format text
|
|
767
|
+
|
|
768
|
+
# Content search with context
|
|
769
|
+
uv run search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2 --output-format json
|
|
770
|
+
|
|
771
|
+
# Combined file and content search with limits
|
|
772
|
+
uv run find-and-grep --roots . --query "import.*spring" --extensions java --file-limit 10 --max-count 5 --output-format text
|
|
681
773
|
```
|
|
682
774
|
|
|
683
775
|
---
|
|
@@ -915,16 +1007,16 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
915
1007
|
## 🏆 Quality Assurance
|
|
916
1008
|
|
|
917
1009
|
### 📊 **Quality Metrics**
|
|
918
|
-
- **1,
|
|
919
|
-
- **74.
|
|
1010
|
+
- **1,797 tests** - 100% pass rate ✅
|
|
1011
|
+
- **74.46% code coverage** - Industry-leading level
|
|
920
1012
|
- **Zero test failures** - Fully CI/CD ready
|
|
921
1013
|
- **Cross-platform compatibility** - Windows, macOS, Linux
|
|
922
1014
|
|
|
923
|
-
### ⚡ **Latest Quality Achievements (v1.3.
|
|
1015
|
+
### ⚡ **Latest Quality Achievements (v1.3.9)**
|
|
924
1016
|
- ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
|
|
925
1017
|
- ✅ **Windows environment** - Implemented robust path normalization using Windows API
|
|
926
1018
|
- ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
|
|
927
|
-
- ✅ **Comprehensive test coverage** -
|
|
1019
|
+
- ✅ **Comprehensive test coverage** - 1797 tests, 74.46% coverage
|
|
928
1020
|
- ✅ **GitFlow implementation** - Professional development/release branch strategy. See [GitFlow documentation](GITFLOW.md) for details.
|
|
929
1021
|
|
|
930
1022
|
### ⚙️ **Running Tests**
|
|
@@ -1041,9 +1133,9 @@ All AI prompts in this document have been thoroughly tested in real environments
|
|
|
1041
1133
|
|
|
1042
1134
|
**Test Environment:**
|
|
1043
1135
|
- Operating System: Windows 10
|
|
1044
|
-
- Project: tree-sitter-analyzer v1.3.
|
|
1136
|
+
- Project: tree-sitter-analyzer v1.3.9
|
|
1045
1137
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
1046
|
-
- Test Coverage:
|
|
1138
|
+
- Test Coverage: 1797 tests passed, 74.46% coverage
|
|
1047
1139
|
- Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
|
|
1048
1140
|
|
|
1049
1141
|
**🚀 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,71 @@ 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
|
+
> **💡 Usage Note**: In development environments, use `uv run` prefix to execute CLI commands:
|
|
78
|
+
> - `uv run list-files` instead of `list-files`
|
|
79
|
+
> - `uv run search-content` instead of `search-content`
|
|
80
|
+
> - `uv run find-and-grep` instead of `find-and-grep`
|
|
81
|
+
>
|
|
82
|
+
> After installing from PyPI, these commands will be available directly in your PATH.
|
|
83
|
+
|
|
84
|
+
#### 📁 **`list-files`** - File Discovery with fd
|
|
85
|
+
```bash
|
|
86
|
+
# List all Java files in current directory
|
|
87
|
+
uv run list-files . --extensions java
|
|
88
|
+
|
|
89
|
+
# Find test files with specific naming patterns
|
|
90
|
+
uv run list-files src --pattern "test_*" --extensions java --types f
|
|
91
|
+
|
|
92
|
+
# Find large files modified in the last week
|
|
93
|
+
uv run list-files . --types f --size "+1k" --changed-within "1week"
|
|
94
|
+
|
|
95
|
+
# Find service classes with specific naming patterns
|
|
96
|
+
uv run list-files src --pattern "*Service*" --extensions java --output-format json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
#### 🔍 **`search-content`** - Content Search with ripgrep
|
|
100
|
+
```bash
|
|
101
|
+
# Search for class definitions in Java files
|
|
102
|
+
uv run search-content --roots . --query "class.*extends" --include-globs "*.java"
|
|
103
|
+
|
|
104
|
+
# Find TODO comments with context
|
|
105
|
+
uv run search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2
|
|
106
|
+
|
|
107
|
+
# Search in specific files with case-insensitive matching
|
|
108
|
+
uv run search-content --files file1.java file2.java --query "public.*method" --case insensitive
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
#### 🎯 **`find-and-grep`** - Two-Stage Search (fd → ripgrep)
|
|
112
|
+
```bash
|
|
113
|
+
# Find Java files first, then search for Spring annotations
|
|
114
|
+
uv run find-and-grep --roots . --query "@SpringBootApplication" --extensions java
|
|
115
|
+
|
|
116
|
+
# Combined file filtering and content search with limits
|
|
117
|
+
uv run find-and-grep --roots src --query "import.*spring" --extensions java --file-limit 10 --max-count 5
|
|
118
|
+
|
|
119
|
+
# Advanced search with multiple filters
|
|
120
|
+
uv run find-and-grep --roots . --query "public.*static.*void" --extensions java --types f --size "+500" --output-format json
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 🛡️ **Security & Safety Features**
|
|
124
|
+
- **Project Boundary Detection**: All commands automatically detect and respect project boundaries
|
|
125
|
+
- **Input Validation**: Comprehensive parameter validation and sanitization
|
|
126
|
+
- **Error Handling**: Graceful error handling with informative messages
|
|
127
|
+
- **Resource Limits**: Built-in limits to prevent resource exhaustion
|
|
128
|
+
|
|
129
|
+
### 📊 **Output Formats**
|
|
130
|
+
- **JSON**: Structured output for programmatic processing
|
|
131
|
+
- **Text**: Human-readable output for terminal use
|
|
132
|
+
- **Quiet Mode**: Suppress non-essential output for scripting
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
71
136
|
## 🚀 30-Second Quick Start
|
|
72
137
|
|
|
73
138
|
### 🤖 AI Users (Claude Desktop, Cursor, etc.)
|
|
@@ -517,6 +582,25 @@ uv run python -m tree_sitter_analyzer examples/BigService.java --query-key metho
|
|
|
517
582
|
|
|
518
583
|
# View filter syntax help
|
|
519
584
|
uv run python -m tree_sitter_analyzer --filter-help
|
|
585
|
+
|
|
586
|
+
# 🆕 New CLI Commands (v1.3.8+)
|
|
587
|
+
# File listing with fd functionality
|
|
588
|
+
uv run list-files . --extensions java --output-format json
|
|
589
|
+
|
|
590
|
+
# Content search with ripgrep functionality
|
|
591
|
+
uv run search-content --roots . --query "class.*extends" --include-globs "*.java" --output-format text
|
|
592
|
+
|
|
593
|
+
# Two-stage search: find files first, then search content
|
|
594
|
+
uv run find-and-grep --roots . --query "public.*method" --extensions java --output-format json
|
|
595
|
+
|
|
596
|
+
# Advanced file filtering
|
|
597
|
+
uv run list-files . --types f --size "+1k" --changed-within "1week" --hidden --output-format text
|
|
598
|
+
|
|
599
|
+
# Content search with context
|
|
600
|
+
uv run search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2 --output-format json
|
|
601
|
+
|
|
602
|
+
# Combined file and content search with limits
|
|
603
|
+
uv run find-and-grep --roots . --query "import.*spring" --extensions java --file-limit 10 --max-count 5 --output-format text
|
|
520
604
|
```
|
|
521
605
|
|
|
522
606
|
---
|
|
@@ -754,16 +838,16 @@ Tree-sitter Analyzer automatically detects and protects project boundaries:
|
|
|
754
838
|
## 🏆 Quality Assurance
|
|
755
839
|
|
|
756
840
|
### 📊 **Quality Metrics**
|
|
757
|
-
- **1,
|
|
758
|
-
- **74.
|
|
841
|
+
- **1,797 tests** - 100% pass rate ✅
|
|
842
|
+
- **74.46% code coverage** - Industry-leading level
|
|
759
843
|
- **Zero test failures** - Fully CI/CD ready
|
|
760
844
|
- **Cross-platform compatibility** - Windows, macOS, Linux
|
|
761
845
|
|
|
762
|
-
### ⚡ **Latest Quality Achievements (v1.3.
|
|
846
|
+
### ⚡ **Latest Quality Achievements (v1.3.9)**
|
|
763
847
|
- ✅ **Cross-platform path compatibility** - Fixed Windows short path names and macOS symbolic link differences
|
|
764
848
|
- ✅ **Windows environment** - Implemented robust path normalization using Windows API
|
|
765
849
|
- ✅ **macOS environment** - Fixed `/var` vs `/private/var` symbolic link differences
|
|
766
|
-
- ✅ **Comprehensive test coverage** -
|
|
850
|
+
- ✅ **Comprehensive test coverage** - 1797 tests, 74.46% coverage
|
|
767
851
|
- ✅ **GitFlow implementation** - Professional development/release branch strategy. See [GitFlow documentation](GITFLOW.md) for details.
|
|
768
852
|
|
|
769
853
|
### ⚙️ **Running Tests**
|
|
@@ -880,9 +964,9 @@ All AI prompts in this document have been thoroughly tested in real environments
|
|
|
880
964
|
|
|
881
965
|
**Test Environment:**
|
|
882
966
|
- Operating System: Windows 10
|
|
883
|
-
- Project: tree-sitter-analyzer v1.3.
|
|
967
|
+
- Project: tree-sitter-analyzer v1.3.9
|
|
884
968
|
- Test Files: BigService.java (1419 lines), sample.py (256 lines), MultiClass.java (54 lines)
|
|
885
|
-
- Test Coverage:
|
|
969
|
+
- Test Coverage: 1797 tests passed, 74.46% coverage
|
|
886
970
|
- Test Tools: All MCP tools (check_code_scale, analyze_code_structure, extract_code_section, query_code, list_files, search_content, find_and_grep)
|
|
887
971
|
|
|
888
972
|
**🚀 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
|
+
uv run list-files . --extensions java
|
|
81
|
+
|
|
82
|
+
# 特定の命名パターンのテストファイルを検索
|
|
83
|
+
uv run list-files src --pattern "test_*" --extensions java --types f
|
|
84
|
+
|
|
85
|
+
# 過去1週間に変更された大きなファイルを検索
|
|
86
|
+
uv run list-files . --types f --size "+1k" --changed-within "1week"
|
|
87
|
+
|
|
88
|
+
# 特定の命名パターンのサービスクラスを検索
|
|
89
|
+
uv run list-files src --pattern "*Service*" --extensions java --output-format json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### 🔍 **`search-content`** - ripgrepによるコンテンツ検索
|
|
93
|
+
```bash
|
|
94
|
+
# Javaファイル内でクラス定義を検索
|
|
95
|
+
uv run search-content --roots . --query "class.*extends" --include-globs "*.java"
|
|
96
|
+
|
|
97
|
+
# TODOコメントを検索し、コンテキストを表示
|
|
98
|
+
uv run search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2
|
|
99
|
+
|
|
100
|
+
# 特定のファイル内で大文字小文字を区別しない検索
|
|
101
|
+
uv run 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
|
+
uv run find-and-grep --roots . --query "@SpringBootApplication" --extensions java
|
|
108
|
+
|
|
109
|
+
# ファイルフィルタリングとコンテンツ検索を組み合わせ、制限付き
|
|
110
|
+
uv run find-and-grep --roots src --query "import.*spring" --extensions java --file-limit 10 --max-count 5
|
|
111
|
+
|
|
112
|
+
# 複数のフィルターを使用した高度な検索
|
|
113
|
+
uv run 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
|
+
uv run list-files . --extensions java --output-format json
|
|
570
|
+
|
|
571
|
+
# ripgrep機能を使用したコンテンツ検索
|
|
572
|
+
uv run search-content --roots . --query "class.*extends" --include-globs "*.java" --output-format text
|
|
573
|
+
|
|
574
|
+
# 2段階検索:まずファイルを検索し、次にコンテンツを検索
|
|
575
|
+
uv run find-and-grep --roots . --query "public.*method" --extensions java --output-format json
|
|
576
|
+
|
|
577
|
+
# 高度なファイルフィルタリング
|
|
578
|
+
uv run list-files . --types f --size "+1k" --changed-within "1week" --hidden --output-format text
|
|
579
|
+
|
|
580
|
+
# コンテキスト付きコンテンツ検索
|
|
581
|
+
uv run search-content --roots src --query "TODO|FIXME" --context-before 2 --context-after 2 --output-format json
|
|
582
|
+
|
|
583
|
+
# ファイル検索とコンテンツ検索の組み合わせ、制限付き
|
|
584
|
+
uv run 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
|
|