tree-sitter-analyzer 1.8.3__tar.gz → 1.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tree-sitter-analyzer might be problematic. Click here for more details.

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