You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the repository primarily supports Python by leveraging jedi and custom-built modules to construct the Repository Map. Developers with the necessary skills are encouraged to understand, modify, and adapt this functionality for their specific needs. Due to the substantial workload required, this project will not consider supporting additional languages in the short term. The functionality constructs the Repository Map and saves it to .project_doc_record, which serves as the basis for subsequent features in the repoagent project:
Multiple users have expressed interest in extending this capability to additional programming languages and have provided valuable feedback. We sincerely appreciate their contributions and ideas. Below are some of my thoughts on this topic.
First, the aider project utilizes tree-sitter to implement their Repository Map feature. However, it has limitations. Since different programming languages have unique features, supporting multiple languages simultaneously requires developers to possess strong cross-language expertise.
I have personally attempted to use tree-sitter to mimic jedi for constructing reference relationships here.
However, this effort has been temporarily shelved.
Additionally, RepoGraph has made progress in this area and published a related paper.
The work introduces an effective plug-in, repo-level module that provides the desired context and significantly enhances LLM-based AI software engineering capabilities.
Another approach is the Language Server Protocol (LSP). With implementations for many languages, LSP can assist in static analysis.
Proposal
Based on the above, my personal suggestion is to adopt different implementations for different programming languages to assist in analysis. The results can then be stored in a unified format to integrate seamlessly with repoagent.
This is a preliminary idea intended to spark further discussion.
The text was updated successfully, but these errors were encountered:
@magaton @Major-wagh @sandeshchand @alikinir Adapted from issue #60 for continued discussion in this thread.
Background
Currently, the repository primarily supports Python by leveraging
jedi
and custom-built modules to construct the Repository Map. Developers with the necessary skills are encouraged to understand, modify, and adapt this functionality for their specific needs. Due to the substantial workload required, this project will not consider supporting additional languages in the short term. The functionality constructs the Repository Map and saves it to.project_doc_record
, which serves as the basis for subsequent features in therepoagent
project:RepoAgent/repo_agent/doc_meta_info.py
Lines 296 to 391 in 825d988
Community Interest
Multiple users have expressed interest in extending this capability to additional programming languages and have provided valuable feedback. We sincerely appreciate their contributions and ideas. Below are some of my thoughts on this topic.
First, the aider project utilizes
tree-sitter
to implement their Repository Map feature. However, it has limitations. Since different programming languages have unique features, supporting multiple languages simultaneously requires developers to possess strong cross-language expertise.I have personally attempted to use
tree-sitter
to mimicjedi
for constructing reference relationships here.However, this effort has been temporarily shelved.
Additionally, RepoGraph has made progress in this area and published a related paper.
The work introduces an effective plug-in, repo-level module that provides the desired context and significantly enhances LLM-based AI software engineering capabilities.
Another approach is the Language Server Protocol (LSP). With implementations for many languages, LSP can assist in static analysis.
Proposal
Based on the above, my personal suggestion is to adopt different implementations for different programming languages to assist in analysis. The results can then be stored in a unified format to integrate seamlessly with
repoagent
.This is a preliminary idea intended to spark further discussion.
The text was updated successfully, but these errors were encountered: