-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion about Support for Multiple Programming Languages #86
Comments
Hello, you are referring to RepoGraph. How is that different / better from Aider's repomap?
|
To @Umpire2018 ‘s two concerns in #87 :
Branch to complete this job? |
@Umpire2018 Would you like to create another branch for tree-sitter migration? |
@st01cs You can continue working on your PR targeting |
Another commit to replace jedi with tree-sitter. It still just handle Python Language. |
@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: