Attempt to add Julia support to Aider tool

Hello,

I recently attempted to contribute Julia language support to the Aider AI coding assistant tool (GitHub - Aider-AI/aider: aider is AI pair programming in your terminal) by submitting a PR 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

2 Likes

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, 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 to provide pre-packaged versions of tree-sitter parsers for many languages.

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
  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.