tree-sitter-analyzer 0.9.4__py3-none-any.whl → 0.9.6__py3-none-any.whl

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.

@@ -1,8 +1,8 @@
1
- tree_sitter_analyzer/__init__.py,sha256=ElX-1qL0OI5EuUf2XVkdqvLuWwRgTVYDGDnyeuLUBww,3067
1
+ tree_sitter_analyzer/__init__.py,sha256=JBnnkxDQchD9fes65p315c62-Pat2QTvNGRKaeumtDo,3067
2
2
  tree_sitter_analyzer/__main__.py,sha256=Zl79tpe4UaMu-7yeztc06tgP0CVMRnvGgas4ZQP5SCs,228
3
3
  tree_sitter_analyzer/api.py,sha256=naRtGuZ27AIVfn6Rid0zQcHDI71UpO9Nh4NQM9JyD3c,16954
4
- tree_sitter_analyzer/cli_main.py,sha256=R03sPnWD_39u1wxpr7nd97EHe8jlp2npViiPbfm_cHo,9644
5
- tree_sitter_analyzer/encoding_utils.py,sha256=pe9tiLJd_xJr-XdxtDNnXfWXyiIJmxVdwtkLwtmk5eM,14641
4
+ tree_sitter_analyzer/cli_main.py,sha256=4uIwje6n2qQvTsX4RBgqFgznxJs8RcCnS1GQjrR5IGQ,10354
5
+ tree_sitter_analyzer/encoding_utils.py,sha256=NHkqOt7GdrxgMsd3k0rVxSO0mWJZXODw3uwl2Qk9ufc,14803
6
6
  tree_sitter_analyzer/exceptions.py,sha256=AZryCQyKXekAg8lQZd3zqULnjhCKovBNNpnUlNGDhcI,11615
7
7
  tree_sitter_analyzer/file_handler.py,sha256=nUD17QIdOJ2bnXekuo-QzGQFv0f2rxCSJi-zWeQFSAs,6636
8
8
  tree_sitter_analyzer/language_detector.py,sha256=pn3nQClo8b_Ar8dS5X3hq9_t5IIlIcizIC0twMaowU4,11693
@@ -11,8 +11,8 @@ tree_sitter_analyzer/models.py,sha256=SrPxiRvlcH0uyOao47tzK-rVqK82JkmmxdU6yJlucS
11
11
  tree_sitter_analyzer/output_manager.py,sha256=saZ8Ss6PhUJgjjwviLgrePFL7CCLMixxdKtdrpuFgHM,8146
12
12
  tree_sitter_analyzer/project_detector.py,sha256=VdZTnY25M2fJTA3MLUzPIjXJtOCPATKlkshEF3eUV7U,9444
13
13
  tree_sitter_analyzer/query_loader.py,sha256=jcJc6_kIMeZINfTVGuiEmDii9LViP_pbJfg4A9phJY4,9863
14
- tree_sitter_analyzer/table_formatter.py,sha256=asfCEPXLFgcsFlYzuHMB7ZbIWilm4aY707hAW5yIWak,27342
15
- tree_sitter_analyzer/utils.py,sha256=K0YvNoeShItrGEIXIb04rm3T8a4Ua__dsXjXK_pJvBc,9912
14
+ tree_sitter_analyzer/table_formatter.py,sha256=Pcow5vNQtX4lTgdQ-DaNd5Wc2xnWwv7KkjNxnfZPxAQ,27551
15
+ tree_sitter_analyzer/utils.py,sha256=3TvlQpzOiuesRI_HD0C-BON4NKvvC8yhutV2ssjWmwo,10753
16
16
  tree_sitter_analyzer/cli/__init__.py,sha256=O_3URpbdu5Ilb2-r48LjbZuWtOWQu_BhL3pa6C0G3Bk,871
17
17
  tree_sitter_analyzer/cli/__main__.py,sha256=Xq8o8-0dPnMDU9WZqmqhzr98rx8rvoffTUHAkAwl-L8,218
18
18
  tree_sitter_analyzer/cli/info_commands.py,sha256=Eev5iG9upn9id1nE2W7Z6-Q5s-o2pDDnMvoyZxh8nmg,4284
@@ -21,7 +21,7 @@ tree_sitter_analyzer/cli/commands/advanced_command.py,sha256=xDZI4zKTMHNdf7fc_QN
21
21
  tree_sitter_analyzer/cli/commands/base_command.py,sha256=o_xjKhn2J5bbGeNC980tALozT1WlsttI0owhLbV2hDM,6597
22
22
  tree_sitter_analyzer/cli/commands/default_command.py,sha256=RAR_eaOK3EndIqU7QL5UAn44mwyhItTN7aUaKL1WmSc,524
23
23
  tree_sitter_analyzer/cli/commands/partial_read_command.py,sha256=RGZsEBybu6PhOQDHBXuhs6l4ZlDcFaxj2bNOvSqKY80,4605
24
- tree_sitter_analyzer/cli/commands/query_command.py,sha256=vpvCKxKGOaOHiNV_7UjW7JV5tAGAAx7AB9sV2EbLEyc,3612
24
+ tree_sitter_analyzer/cli/commands/query_command.py,sha256=VFuCFJxffjSUrMa7NB_KJmMexUnJmnazpTDbw-i9Ulw,4003
25
25
  tree_sitter_analyzer/cli/commands/structure_command.py,sha256=0iJwjOgtW838hXleXogWhbu6eQFfrLR1QgKe5PFBqvU,5220
26
26
  tree_sitter_analyzer/cli/commands/summary_command.py,sha256=02WA3sOzfT83FVT6sW7nK04zVcZ9Qj_1S0WloqlTnFk,3602
27
27
  tree_sitter_analyzer/cli/commands/table_command.py,sha256=GvGpLZ_YwE5syufNMfvjPrzwt-bXUtAF7EoOQ0Dr_O0,9441
@@ -31,6 +31,8 @@ tree_sitter_analyzer/core/cache_service.py,sha256=0oZGuTpeHBKYNdnqAOVi6VlQukYMIH
31
31
  tree_sitter_analyzer/core/engine.py,sha256=VFXGowDj6EfjFSh2MQDkQIc-4ISXaOg38n4lUhVY5Os,18721
32
32
  tree_sitter_analyzer/core/parser.py,sha256=qT3yIlTRdod4tf_2o1hU_B-GYGukyM2BtaFxzSoxois,9293
33
33
  tree_sitter_analyzer/core/query.py,sha256=UhQxUmQitFobe2YM7Ifhi3X2WdHVb02KzeBunueYJ4I,16397
34
+ tree_sitter_analyzer/core/query_filter.py,sha256=PvGztAZFooFNZe6iHNmbg6RUNtMvq6f6hBZFzllig6Y,6591
35
+ tree_sitter_analyzer/core/query_service.py,sha256=j9v3w2j3axhxzFEbZLovDNT2h6kF4PWbJVL_PmKl3ho,5542
34
36
  tree_sitter_analyzer/formatters/__init__.py,sha256=yVb4HF_4EEPRwTf3y3-vM2NllrhykG3zlvQhN-6dB4c,31
35
37
  tree_sitter_analyzer/formatters/base_formatter.py,sha256=Uv6uVgUKwbBn6of26bnvr4u6CmX2ka1a405VL17CGFU,5763
36
38
  tree_sitter_analyzer/formatters/formatter_factory.py,sha256=mCnAbEHycoSttSuF4dU78hzcxyg-h57bo0_bj00zw58,2069
@@ -46,14 +48,15 @@ tree_sitter_analyzer/languages/java_plugin.py,sha256=ZTtDgyUdv-b9fFvCMEL3xS-yr0r
46
48
  tree_sitter_analyzer/languages/javascript_plugin.py,sha256=k14kHfi5II9MRTsVuy0NQq5l2KZYncCnM1Q6T1c5q_U,15844
47
49
  tree_sitter_analyzer/languages/python_plugin.py,sha256=MJ03F_Nv-nmInIkEFmPyEXYhyGbLHyr5kCbj2taEDYk,29144
48
50
  tree_sitter_analyzer/mcp/__init__.py,sha256=Dj4aqt_6inDKQ1xmA6DNMNDQBHzToqBjSWazdAWZgCY,944
49
- tree_sitter_analyzer/mcp/server.py,sha256=e_Enu0MoEuWISFW0XQxcU-_db5jwCQY5txfVkqTO-7U,24788
51
+ tree_sitter_analyzer/mcp/server.py,sha256=93baLte6ub2rnxr5EKfeknpN1t2BWraTm6Mk4imvHVU,25068
50
52
  tree_sitter_analyzer/mcp/resources/__init__.py,sha256=SWnK8liTQkuQXlVgyRP9mf5HzpqmqohShrC98xlNnDc,1389
51
- tree_sitter_analyzer/mcp/resources/code_file_resource.py,sha256=POhQ1xPMiGBVVm6AfOQNKM29svDLvlGLA97ZPQgVoHw,6253
53
+ tree_sitter_analyzer/mcp/resources/code_file_resource.py,sha256=ZX5ZYSJfylBedpL80kTDlco2YZqgRMb5f3OW0VvOVRM,6166
52
54
  tree_sitter_analyzer/mcp/resources/project_stats_resource.py,sha256=V5-daZ99SU4rOt7qLk9GmhkzdXJpEINBobNlT14ojYY,19441
53
55
  tree_sitter_analyzer/mcp/tools/__init__.py,sha256=u7JrSLwE95y50mfjSus6HRdtdhkNbVrW8jP4AooawEU,762
54
56
  tree_sitter_analyzer/mcp/tools/analyze_scale_tool.py,sha256=cVBhq4_KxwcqdmA5s9iZLH4YDy7T_TKLNNdqqaGKnFU,27369
55
57
  tree_sitter_analyzer/mcp/tools/analyze_scale_tool_cli_compatible.py,sha256=mssed7bEfGeGxW4mOf7dg8BDS1oqHLolIBNX9DaZ3DM,8997
56
58
  tree_sitter_analyzer/mcp/tools/base_tool.py,sha256=FVSMgKIliQ5EBVQEfjYwWeqzWt9OqOFDr3dyACIDxig,1210
59
+ tree_sitter_analyzer/mcp/tools/query_tool.py,sha256=FBsxsWhoSYA0ql_IaMGSLR6vmg3M4b1rDsYZsZuVGWQ,7996
57
60
  tree_sitter_analyzer/mcp/tools/read_partial_tool.py,sha256=MkAeXc-n-8fxRGtE3RQ_yZOPQ1lzdUppVFKrRzBPogU,11790
58
61
  tree_sitter_analyzer/mcp/tools/table_format_tool.py,sha256=flFEcDOozJSJOtsQVHsk5eTYsutBi_T_2ft9XUpceSM,15896
59
62
  tree_sitter_analyzer/mcp/tools/universal_analyze_tool.py,sha256=RSbztW_b07DL5e1an4BE--snX744v4KmlRGab5bGj6U,21677
@@ -63,15 +66,15 @@ tree_sitter_analyzer/plugins/__init__.py,sha256=ITE9bTz7NO4axnn8g5Z-1_ydhSLT0RnY
63
66
  tree_sitter_analyzer/plugins/base.py,sha256=FMRAOtjtDutNV8RnB6cmFgdvcjxKRAbrrzqldBBT1yk,17167
64
67
  tree_sitter_analyzer/plugins/manager.py,sha256=PyEY3jeuCBpDVqguWhaAu7nzUZM17_pI6wml2e0Hamo,12535
65
68
  tree_sitter_analyzer/queries/__init__.py,sha256=dwDDc7PCw_UWruxSeJ8uEBjY0O5uLDBI5YqyvBhbnN0,696
66
- tree_sitter_analyzer/queries/java.py,sha256=NZTSzFADlGrm3MD0oIkOdkN_6wP2pGZpNs0Rb7I_mcw,12249
69
+ tree_sitter_analyzer/queries/java.py,sha256=avaPFeHz3Ig-yTdCDKfUKaG-5sktOEkrXG2p9_mEZVs,12388
67
70
  tree_sitter_analyzer/queries/javascript.py,sha256=pnXrgISwDE5GhPHDbUKEGI3thyLmebTeQt-l_-x4qT8,3962
68
71
  tree_sitter_analyzer/queries/python.py,sha256=L33KRUyV3sAvA3_HFkPyGgtiq0ygSpNY_n2YojodPlc,7570
69
72
  tree_sitter_analyzer/queries/typescript.py,sha256=eersyAF7TladuCWa8WE_-cO9YTF1LUSjLIl-tk2fZDo,6708
70
73
  tree_sitter_analyzer/security/__init__.py,sha256=ZTqTt24hsljCpTXAZpJC57L7MU5lJLTf_XnlvEzXwEE,623
71
- tree_sitter_analyzer/security/boundary_manager.py,sha256=t8nepTsymX7pEkdjJyUe8oo3w261hhngO1lNUip3vio,7751
74
+ tree_sitter_analyzer/security/boundary_manager.py,sha256=CUQWU5j1zdjEbN9UmArcYkq9HbemhttQzk0pVk-vxZs,8153
72
75
  tree_sitter_analyzer/security/regex_checker.py,sha256=jWK6H8PTPgzbwRPfK_RZ8bBTS6rtEbgjY5vr3YWjQ_U,9616
73
76
  tree_sitter_analyzer/security/validator.py,sha256=UPAPcrnmI2mNzbYOm0MabnJMGllK6HlOQ9KX-2bRfgU,8986
74
- tree_sitter_analyzer-0.9.4.dist-info/METADATA,sha256=IglrmBD56JridPImSy_hzRfPFjyfxbrkSj5gHqAi7do,15909
75
- tree_sitter_analyzer-0.9.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
76
- tree_sitter_analyzer-0.9.4.dist-info/entry_points.txt,sha256=U4tfLGXgCWubKm2PyEb3zxhQ2pm7zVotMyfyS0CodD8,486
77
- tree_sitter_analyzer-0.9.4.dist-info/RECORD,,
77
+ tree_sitter_analyzer-0.9.6.dist-info/METADATA,sha256=_bMzqpiKdK1seg16PqwJhmF2vxPGsPL3HkB48XSNhVg,22608
78
+ tree_sitter_analyzer-0.9.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
79
+ tree_sitter_analyzer-0.9.6.dist-info/entry_points.txt,sha256=U4tfLGXgCWubKm2PyEb3zxhQ2pm7zVotMyfyS0CodD8,486
80
+ tree_sitter_analyzer-0.9.6.dist-info/RECORD,,
@@ -1,409 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: tree-sitter-analyzer
3
- Version: 0.9.4
4
- Summary: Extensible multi-language code analyzer framework using Tree-sitter with dynamic plugin architecture
5
- Project-URL: Homepage, https://github.com/aimasteracc/tree-sitter-analyzer
6
- Project-URL: Documentation, https://github.com/aimasteracc/tree-sitter-analyzer#readme
7
- Project-URL: Repository, https://github.com/aimasteracc/tree-sitter-analyzer.git
8
- Project-URL: Issues, https://github.com/aimasteracc/tree-sitter-analyzer/issues
9
- Project-URL: Changelog, https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/CHANGELOG.md
10
- Project-URL: Bug Reports, https://github.com/aimasteracc/tree-sitter-analyzer/issues
11
- Project-URL: Source Code, https://github.com/aimasteracc/tree-sitter-analyzer
12
- Author-email: "aisheng.yu" <aimasteracc@gmail.com>
13
- Maintainer-email: "aisheng.yu" <aimasteracc@gmail.com>
14
- License: MIT
15
- Keywords: ai-tools,ast,code-analysis,mcp,mcp-server,model-context-protocol,multi-language,parsing,static-analysis,tree-sitter
16
- Classifier: Development Status :: 4 - Beta
17
- Classifier: Framework :: AsyncIO
18
- Classifier: Intended Audience :: Developers
19
- Classifier: License :: OSI Approved :: MIT License
20
- Classifier: Operating System :: OS Independent
21
- Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.10
23
- Classifier: Programming Language :: Python :: 3.11
24
- Classifier: Programming Language :: Python :: 3.12
25
- Classifier: Programming Language :: Python :: 3.13
26
- Classifier: Topic :: Communications
27
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
28
- Classifier: Topic :: Software Development :: Code Generators
29
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
- Classifier: Topic :: Software Development :: Quality Assurance
31
- Classifier: Topic :: Text Processing :: Linguistic
32
- Classifier: Typing :: Typed
33
- Requires-Python: >=3.10
34
- Requires-Dist: cachetools>=5.0.0
35
- Requires-Dist: chardet>=5.0.0
36
- Requires-Dist: mcp>=1.12.3
37
- Requires-Dist: tree-sitter-cpp>=0.23.4
38
- Requires-Dist: tree-sitter-java>=0.23.5
39
- Requires-Dist: tree-sitter-javascript>=0.23.1
40
- Requires-Dist: tree-sitter-python>=0.23.6
41
- Requires-Dist: tree-sitter==0.24.0
42
- Provides-Extra: all-languages
43
- Requires-Dist: tree-sitter-c>=0.20.0; extra == 'all-languages'
44
- Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'all-languages'
45
- Requires-Dist: tree-sitter-go>=0.20.0; extra == 'all-languages'
46
- Requires-Dist: tree-sitter-java>=0.23.5; extra == 'all-languages'
47
- Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'all-languages'
48
- Requires-Dist: tree-sitter-python>=0.23.0; extra == 'all-languages'
49
- Requires-Dist: tree-sitter-rust>=0.20.0; extra == 'all-languages'
50
- Requires-Dist: tree-sitter-typescript>=0.20.0; extra == 'all-languages'
51
- Provides-Extra: c
52
- Requires-Dist: tree-sitter-c>=0.20.0; extra == 'c'
53
- Provides-Extra: cpp
54
- Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'cpp'
55
- Provides-Extra: dev
56
- Requires-Dist: black>=24.0.0; extra == 'dev'
57
- Requires-Dist: isort>=5.13.0; extra == 'dev'
58
- Requires-Dist: memory-profiler>=0.61.0; extra == 'dev'
59
- Requires-Dist: mypy>=1.17.0; extra == 'dev'
60
- Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
61
- Requires-Dist: psutil<6,>=5.9.6; extra == 'dev'
62
- Requires-Dist: pytest-asyncio>=1.1.0; extra == 'dev'
63
- Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
64
- Requires-Dist: pytest-mock>=3.14.1; extra == 'dev'
65
- Requires-Dist: pytest>=8.4.1; extra == 'dev'
66
- Requires-Dist: ruff>=0.5.0; extra == 'dev'
67
- Requires-Dist: types-psutil>=5.9.0; extra == 'dev'
68
- Provides-Extra: full
69
- Requires-Dist: anyio>=4.0.0; extra == 'full'
70
- Requires-Dist: black>=24.0.0; extra == 'full'
71
- Requires-Dist: httpx<1.0.0,>=0.27.0; extra == 'full'
72
- Requires-Dist: isort>=5.13.0; extra == 'full'
73
- Requires-Dist: mcp>=1.12.2; extra == 'full'
74
- Requires-Dist: memory-profiler>=0.61.0; extra == 'full'
75
- Requires-Dist: mypy>=1.17.0; extra == 'full'
76
- Requires-Dist: pre-commit>=3.0.0; extra == 'full'
77
- Requires-Dist: psutil<6,>=5.9.6; extra == 'full'
78
- Requires-Dist: pydantic-settings>=2.2.1; extra == 'full'
79
- Requires-Dist: pydantic>=2.5.0; extra == 'full'
80
- Requires-Dist: pytest-asyncio>=1.1.0; extra == 'full'
81
- Requires-Dist: pytest-cov>=4.0.0; extra == 'full'
82
- Requires-Dist: pytest-mock>=3.14.1; extra == 'full'
83
- Requires-Dist: pytest>=8.4.1; extra == 'full'
84
- Requires-Dist: ruff>=0.5.0; extra == 'full'
85
- Requires-Dist: tree-sitter-c>=0.20.0; extra == 'full'
86
- Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'full'
87
- Requires-Dist: tree-sitter-go>=0.20.0; extra == 'full'
88
- Requires-Dist: tree-sitter-java>=0.23.5; extra == 'full'
89
- Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'full'
90
- Requires-Dist: tree-sitter-python>=0.23.0; extra == 'full'
91
- Requires-Dist: tree-sitter-rust>=0.20.0; extra == 'full'
92
- Requires-Dist: tree-sitter-typescript>=0.20.0; extra == 'full'
93
- Requires-Dist: types-psutil>=5.9.0; extra == 'full'
94
- Provides-Extra: go
95
- Requires-Dist: tree-sitter-go>=0.20.0; extra == 'go'
96
- Provides-Extra: java
97
- Requires-Dist: tree-sitter-java>=0.23.5; extra == 'java'
98
- Provides-Extra: javascript
99
- Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'javascript'
100
- Provides-Extra: mcp
101
- Requires-Dist: anyio>=4.0.0; extra == 'mcp'
102
- Requires-Dist: httpx<1.0.0,>=0.27.0; extra == 'mcp'
103
- Requires-Dist: mcp>=1.12.2; extra == 'mcp'
104
- Requires-Dist: pydantic-settings>=2.2.1; extra == 'mcp'
105
- Requires-Dist: pydantic>=2.5.0; extra == 'mcp'
106
- Provides-Extra: popular
107
- Requires-Dist: tree-sitter-java>=0.23.5; extra == 'popular'
108
- Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'popular'
109
- Requires-Dist: tree-sitter-python>=0.23.0; extra == 'popular'
110
- Requires-Dist: tree-sitter-typescript>=0.20.0; extra == 'popular'
111
- Provides-Extra: python
112
- Requires-Dist: tree-sitter-python>=0.23.0; extra == 'python'
113
- Provides-Extra: rust
114
- Requires-Dist: tree-sitter-rust>=0.20.0; extra == 'rust'
115
- Provides-Extra: systems
116
- Requires-Dist: tree-sitter-c>=0.20.0; extra == 'systems'
117
- Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'systems'
118
- Requires-Dist: tree-sitter-go>=0.20.0; extra == 'systems'
119
- Requires-Dist: tree-sitter-rust>=0.20.0; extra == 'systems'
120
- Provides-Extra: test
121
- Requires-Dist: pytest-asyncio>=1.1.0; extra == 'test'
122
- Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
123
- Requires-Dist: pytest-mock>=3.14.1; extra == 'test'
124
- Requires-Dist: pytest>=8.4.1; extra == 'test'
125
- Requires-Dist: tree-sitter-cpp>=0.23.4; extra == 'test'
126
- Requires-Dist: tree-sitter-java>=0.23.5; extra == 'test'
127
- Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'test'
128
- Requires-Dist: tree-sitter-python>=0.23.0; extra == 'test'
129
- Provides-Extra: typescript
130
- Requires-Dist: tree-sitter-typescript>=0.20.0; extra == 'typescript'
131
- Provides-Extra: web
132
- Requires-Dist: tree-sitter-javascript>=0.23.1; extra == 'web'
133
- Requires-Dist: tree-sitter-typescript>=0.20.0; extra == 'web'
134
- Description-Content-Type: text/markdown
135
-
136
- # Tree-sitter Analyzer
137
-
138
- [![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
139
- [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
140
- [![Tests](https://img.shields.io/badge/tests-306%20passed-brightgreen.svg)](#testing)
141
- [![Coverage](https://img.shields.io/badge/coverage-74.82%25-green.svg)](#testing)
142
- [![Quality](https://img.shields.io/badge/quality-enterprise%20grade-blue.svg)](#quality)
143
-
144
- **Solve the LLM token limit problem for large code files.**
145
-
146
- An extensible multi-language code analyzer that helps AI assistants understand code structure without reading entire files. Get code overview, extract specific sections, and analyze complexity - all optimized for LLM workflows.
147
-
148
- ## ✨ Why Tree-sitter Analyzer?
149
-
150
- **The Problem:** Large code files exceed LLM token limits, making code analysis inefficient or impossible.
151
-
152
- **The Solution:** Smart code analysis that provides:
153
- - 📊 **Code overview** without reading complete files
154
- - 🎯 **Targeted extraction** of specific line ranges
155
- - 📍 **Precise positioning** for accurate code operations
156
- - 🤖 **AI assistant integration** via MCP protocol
157
-
158
- ## 🚀 Quick Start (5 minutes)
159
-
160
- ### For AI Assistant Users (Claude Desktop)
161
-
162
- 1. **Install the package:**
163
- ```bash
164
- # Install uv (fast Python package manager)
165
- curl -LsSf https://astral.sh/uv/install.sh | sh # macOS/Linux
166
- # or: powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows
167
-
168
- # No need to install the package separately - uv handles it
169
- ```
170
-
171
- 2. **Configure Claude Desktop:**
172
-
173
- Add to your Claude Desktop config file:
174
-
175
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
176
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
177
- **Linux:** `~/.config/claude/claude_desktop_config.json`
178
-
179
- ```json
180
- {
181
- "mcpServers": {
182
- "tree-sitter-analyzer": {
183
- "command": "uv",
184
- "args": [
185
- "run",
186
- "--with",
187
- "tree-sitter-analyzer[mcp]",
188
- "python",
189
- "-m",
190
- "tree_sitter_analyzer.mcp.server"
191
- ]
192
- }
193
- }
194
- }
195
- ```
196
-
197
- 3. **Restart Claude Desktop** and start analyzing code!
198
-
199
- ### For CLI Users
200
-
201
- ```bash
202
- # Install with uv (recommended)
203
- uv add "tree-sitter-analyzer[popular]"
204
-
205
- # Step 1: Check file scale
206
- uv run python -m tree_sitter_analyzer examples/Sample.java --advanced --output-format=text
207
-
208
- # Step 2: Analyze structure (for large files)
209
- uv run python -m tree_sitter_analyzer examples/Sample.java --table=full
210
-
211
- # Step 3: Extract specific lines
212
- uv run python -m tree_sitter_analyzer examples/Sample.java --partial-read --start-line 84 --end-line 86
213
- ```
214
-
215
- ## 🛠️ Core Features
216
-
217
- ### 1. Code Structure Analysis
218
- Get comprehensive overview without reading entire files:
219
- - Classes, methods, fields count
220
- - Package information
221
- - Import dependencies
222
- - Complexity metrics
223
-
224
- ### 2. Targeted Code Extraction
225
- Extract specific code sections efficiently:
226
- - Line range extraction
227
- - Precise positioning data
228
- - Content length information
229
-
230
- ### 3. AI Assistant Integration
231
- Three-step workflow MCP tools for AI assistants:
232
- - `check_code_scale` - **Step 1:** Get code metrics and complexity
233
- - `analyze_code_structure` - **Step 2:** Generate detailed structure tables with line positions
234
- - `extract_code_section` - **Step 3:** Extract specific code sections by line range
235
-
236
- ### 4. Multi-Language Support
237
- - **Java** - Full support with advanced analysis
238
- - **Python** - Complete support
239
- - **JavaScript/TypeScript** - Full support
240
- - **C/C++, Rust, Go** - Basic support
241
-
242
- ## 📖 Usage Examples
243
-
244
- ### AI Assistant Usage (via Claude Desktop)
245
-
246
- **Step 1: Check code scale**
247
- ```
248
- Use tool: check_code_scale
249
- Parameters: {"file_path": "examples/Sample.java"}
250
- ```
251
-
252
- **Step 2: Analyze structure (for large files >100 lines)**
253
- ```
254
- Use tool: analyze_code_structure
255
- Parameters: {"file_path": "examples/Sample.java", "format_type": "full"}
256
- ```
257
-
258
- **Step 3: Extract specific code (using line positions from step 2)**
259
- ```
260
- Use tool: extract_code_section
261
- Parameters: {"file_path": "examples/Sample.java", "start_line": 84, "end_line": 86}
262
- ```
263
-
264
- > **Note:** Always use snake_case parameter names: `file_path`, `start_line`, `end_line`, `format_type`
265
-
266
- ### CLI Usage
267
-
268
- **Step 1: Basic analysis (Check file scale):**
269
- ```bash
270
- uv run python -m tree_sitter_analyzer examples/Sample.java --advanced --output-format=text
271
- ```
272
-
273
- **Step 2: Structure analysis (For large files that exceed LLM limits):**
274
- ```bash
275
- uv run python -m tree_sitter_analyzer examples/Sample.java --table=full
276
- ```
277
-
278
- **Step 3: Targeted extraction (Read specific code sections):**
279
- ```bash
280
- uv run python -m tree_sitter_analyzer examples/Sample.java --partial-read --start-line 84 --end-line 86
281
- ```
282
-
283
- **Additional Options:**
284
- ```bash
285
- # Quiet mode (suppress INFO messages, show only errors)
286
- uv run python -m tree_sitter_analyzer examples/Sample.java --advanced --output-format=text --quiet
287
-
288
- # Table output with quiet mode
289
- uv run python -m tree_sitter_analyzer examples/Sample.java --table=full --quiet
290
- ```
291
-
292
- ## 🔧 Installation Options
293
-
294
- ### For End Users
295
- ```bash
296
- # Basic installation
297
- uv add tree-sitter-analyzer
298
-
299
- # With popular languages (Java, Python, JS, TS)
300
- uv add "tree-sitter-analyzer[popular]"
301
-
302
- # With MCP server support
303
- uv add "tree-sitter-analyzer[mcp]"
304
-
305
- # Full installation
306
- uv add "tree-sitter-analyzer[all,mcp]"
307
- ```
308
-
309
- ### For Developers
310
- ```bash
311
- # Clone and install for development
312
- git clone https://github.com/aimasteracc/tree-sitter-analyzer.git
313
- cd tree-sitter-analyzer
314
- uv sync --extra all --extra mcp
315
- ```
316
-
317
- ## 📚 Documentation
318
-
319
- - **[MCP Setup Guide for Users](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/MCP_SETUP_USERS.md)** - Simple setup for AI assistant users
320
- - **[MCP Setup Guide for Developers](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/MCP_SETUP_DEVELOPERS.md)** - Local development configuration
321
- - **[Project Root Configuration](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/PROJECT_ROOT_CONFIG.md)** - Complete configuration reference
322
- - **[API Documentation](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/docs/api.md)** - Detailed API reference
323
- - **[Contributing Guide](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/CONTRIBUTING.md)** - How to contribute
324
-
325
- ### 🔒 Project Root Configuration
326
-
327
- Tree-sitter-analyzer automatically detects and secures your project boundaries:
328
-
329
- - **Auto-detection**: Finds project root from `.git`, `pyproject.toml`, `package.json`, etc.
330
- - **CLI**: Use `--project-root /path/to/project` for explicit control
331
- - **MCP**: Set `TREE_SITTER_PROJECT_ROOT=${workspaceFolder}` for workspace integration
332
- - **Security**: Only analyzes files within project boundaries
333
-
334
- **Recommended MCP configuration:**
335
- ```json
336
- {
337
- "mcpServers": {
338
- "tree-sitter-analyzer": {
339
- "command": "uv",
340
- "args": ["run", "--with", "tree-sitter-analyzer[mcp]", "python", "-m", "tree_sitter_analyzer.mcp.server"],
341
- "env": {"TREE_SITTER_PROJECT_ROOT": "${workspaceFolder}"}
342
- }
343
- }
344
- }
345
- ```
346
-
347
- ## 🧪 Testing & Quality
348
-
349
- This project maintains **enterprise-grade quality** with comprehensive testing:
350
-
351
- ### 📊 Quality Metrics
352
- - **1358 tests** - 100% pass rate ✅
353
- - **74.82% code coverage** - Industry standard quality
354
- - **Zero test failures** - Complete CI/CD readiness
355
- - **Cross-platform compatibility** - Windows, macOS, Linux
356
-
357
- ### 🏆 Recent Quality Achievements (v0.8.2)
358
- - ✅ **Complete test suite stabilization** - Fixed all 31 failing tests
359
- - ✅ **Formatters module breakthrough** - 0% → 42.30% coverage
360
- - ✅ **Error handling improvements** - 61.64% → 82.76% coverage
361
- - ✅ **104 new comprehensive tests** across critical modules
362
-
363
- ### 🔧 Running Tests
364
- ```bash
365
- # Run all tests
366
- pytest tests/ -v
367
-
368
- # Run with coverage report
369
- pytest tests/ --cov=tree_sitter_analyzer --cov-report=html
370
-
371
- # Run specific test categories
372
- pytest tests/test_formatters_comprehensive.py -v
373
- pytest tests/test_core_engine_extended.py -v
374
- pytest tests/test_mcp_server_initialization.py -v
375
- ```
376
-
377
- ### 📈 Coverage Highlights
378
- - **Formatters**: 42.30% (newly established)
379
- - **Error Handler**: 82.76% (major improvement)
380
- - **Language Detector**: 98.41% (excellent)
381
- - **CLI Main**: 97.78% (excellent)
382
- - **Security Framework**: 78%+ across all modules
383
-
384
- ## 📄 License
385
-
386
- MIT License - see [LICENSE](LICENSE) file for details.
387
-
388
- ## 🤝 Contributing
389
-
390
- We welcome contributions! Please see our [Contributing Guide](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/CONTRIBUTING.md) for details.
391
-
392
- ### 🤖 AI/LLM Collaboration
393
-
394
- This project supports AI-assisted development with specialized quality controls:
395
-
396
- ```bash
397
- # For AI systems - run before generating code
398
- python check_quality.py --new-code-only
399
- python llm_code_checker.py --check-all
400
-
401
- # For AI-generated code review
402
- python llm_code_checker.py path/to/new_file.py
403
- ```
404
-
405
- 📖 **See our [AI Collaboration Guide](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/AI_COLLABORATION_GUIDE.md) and [LLM Coding Guidelines](https://github.com/aimasteracc/tree-sitter-analyzer/blob/main/LLM_CODING_GUIDELINES.md) for detailed instructions on working with AI systems.**
406
-
407
- ---
408
-
409
- **Made with ❤️ for developers who work with large codebases and AI assistants.**