# Attempt to add Julia support to Aider tool

**URL:** <https://discourse.julialang.org/t/attempt-to-add-julia-support-to-aider-tool/121553>\
**Category:** Tooling\
**Tags:** developer-tools\
**Created:** [October 21, 2024, 8:04pm UTC](https://discourse.julialang.org/t/attempt-to-add-julia-support-to-aider-tool/121553 "2024-10-21T20:04:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![younes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/younes/32/208506_2.png) [@younes](https://discourse.julialang.org/u/younes)\
**Post date:** [October 21, 2024, 8:04pm UTC](https://discourse.julialang.org/t/attempt-to-add-julia-support-to-aider-tool/121553/1 "2024-10-21T20:04:35Z")

</div>

Hello,

I recently attempted to contribute Julia language support to the [Aider](https://aider.chat/) AI coding assistant tool ([GitHub - Aider-AI/aider: aider is AI pair programming in your terminal](https://github.com/paul-gauthier/aider)) by submitting a [PR](https://github.com/Aider-AI/aider/pull/2084) to their GitHub repo.

The key piece needed was a `tags.scm` file that defines the language grammar. In my initial PR, I included a `tags.scm` file that I had generated using Aider and a language model. However, the maintainer was hesitant to accept a file with unclear provenance.

Currently, the Aider maintainer seems open to adding Julia support in the future, but to do so, a properly generated and validated `tags.scm` file would be needed.

I’m sharing this here to:

1. Let the community know about this attempt to bring Aider support for Julia
2. See if anyone has ideas on authoritatively generating the needed `tags.scm` file (especially since I am definitely not an expert on the matter)
3. Gauge the community’s interest in having Aider support. If there is strong interest, perhaps we could collaborate with the Aider project to make it happen.

AI coding assistants like Aider could be very helpful for the Julia community, so I wanted to open up the discussion. Let me know your thoughts!

Thanks,  
Younes

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [October 21, 2024, 8:20pm UTC](https://discourse.julialang.org/t/attempt-to-add-julia-support-to-aider-tool/121553/2 "2024-10-21T20:20:02Z")

</div>

> **[Supported languages](https://aider.chat/docs/languages.html)**
>
> Aider supports pretty much all popular coding languages.

> Aider should work quite well for other languages, even those without repo map or linter support. You should really try coding with aider before assuming it needs better support for your language.
> 
> That said, if aider already has support for linting your language, then it should be possible to add repo map support. To build a repo map, aider needs the `tags.scm` file from the given language’s tree-sitter grammar. If you can find and share that file in a [GitHub issue](https://github.com/Aider-AI/aider/issues), then it may be possible to add repo map support.
> 
> If aider doesn’t support linting, it will be complicated to add linting and repo map support. That is because aider relies on [py-tree-sitter-languages](https://github.com/grantjenks/py-tree-sitter-languages) to provide pre-packaged versions of tree-sitter parsers for many languages.

---

<div class="post-metadata">

**Author:** ![younes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/younes/32/208506_2.png) [@younes](https://discourse.julialang.org/u/younes)\
**Post date:** [October 22, 2024, 6:37pm UTC](https://discourse.julialang.org/t/attempt-to-add-julia-support-to-aider-tool/121553/3 "2024-10-22T18:37:36Z")

</div>

Thanks for your response @nsajko. Let me make sure I understand the path forward correctly:

1. Julia already has a tree-sitter grammar at [GitHub - tree-sitter/tree-sitter-julia: Julia grammar for tree-sitter](https://github.com/tree-sitter/tree-sitter-julia)
2. What’s missing is a properly validated `tags.scm` file that defines how to extract meaningful code elements
3. This file needs to be created following tree-sitter’s query syntax

Is anyone in the community familiar with creating tree-sitter query files who could help with this? The end goal would be to improve Julia support in Aider.
