# Please back the inclusion of Ada in CodeGraph

**URL:** https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712
**Category:** General
**Created:** [September 2, 2026, 4:14pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712 "2026-09-02T16:14:54Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![geewiz](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/geewiz/32/813_2.png) [@geewiz](https://forum.ada-lang.io/u/geewiz)
#### Post date: [September 2, 2026, 4:14pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/1 "2026-09-02T16:14:54Z")

</div>

[CodeGraph](https://github.com/colbymchenry/codegraph) is a tool that gives coding agents direct access to the depths of a codebase. It’s orders of magnitude more efficient (both in time and token use) than plain text search.

Unfortunately, on an Ada codebase, it currently returns “0 files indexed” – it doesn’t know how to parse Ada. I’ve requested to implement Ada support and added helpful detail information.

The project maintainer uses GitHub reactions to gauge interest in a language and decide on implementation priority.

Regardless if you’re into LLM-assisted coding or not, I’m convinced it can only help Ada if there’s support for it in modern developer tooling. That’s why I’m asking you kindly to leave a thumbs-up on [my inclusion request](https://github.com/colbymchenry/codegraph/issues/648#issuecomment-5415139185).

---

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [September 2, 2026, 5:33pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/2 "2026-09-02T17:33:56Z")

</div>

I wasn’t familiar with codegraph, thanks for the reference. The tool looks sophisticated and efficient.

On my side, I had noticed with Mistral that when I referenced a variable, it would perform a very “primitive” search, relying on grep / ls / find to locate variables or identify the relevant files.

I figured then that in an Ada skill, it would be worth telling the LLM how to use `gnatfind` or `gnatxref` (having it read the `.ali` files directly seems less efficient) to navigate the source code more effectively.

This would be a simpler “low-tech” solution to reduce the tokens wasted navigating the sources, with the downside of requiring compilable sources, but with the advantage of doing without yet another MCP server, and with no risk of misinterpreting the source code.

---

<div class="post-metadata">

### Author: ![krischik](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/krischik/32/420_2.png) [@krischik](https://forum.ada-lang.io/u/krischik)
#### Post date: [September 3, 2026, 11:59am UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/3 "2026-09-03T11:59:45Z")

</div>

> [@geewiz](#):
>
> kindly to leave a thumbs-up

How. It says do a 👍 **on the row** but can’t see how that is done.

Martin

---

<div class="post-metadata">

### Author: ![geewiz](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/geewiz/32/813_2.png) [@geewiz](https://forum.ada-lang.io/u/geewiz)
#### Post date: [September 3, 2026, 12:38pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/4 "2026-09-03T12:38:33Z")

</div>

> [@krischik](#):
>
> How. It says do a 👍 **on the row** but can’t see how that is done.

When you’re logged in with your GitHub account, you can click the existing reaction icon under my comment.

---

<div class="post-metadata">

### Author: ![krischik](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/krischik/32/420_2.png) [@krischik](https://forum.ada-lang.io/u/krischik)
#### Post date: [September 3, 2026, 1:12pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/5 "2026-09-03T13:12:33Z")

</div>

> [@geewiz](#):
>
> When you’re logged in with your GitHub account, you can click the existing reaction icon under my comment.

After you clicked **“Show More”** 😁 .

- QML: 1
- Elixir: 1
- ColdFusion: 6
- Ada: 12

But a pull request with an ready made implantation can push you to the top.

---

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [October 9, 2026, 3:10pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/6 "2026-10-09T15:10:33Z")

</div>

> [@LionelDraghi](#):
>
> I figured then that in an Ada skill, it would be worth telling the LLM how to use `gnatfind` or `gnatxref` (having it read the `.ali` files directly seems less efficient) to navigate the source code more effectively.

I wanted to try my low-tech approach based on `gnat find` / `gnat xref`, but I’ve just discovered that these utilities are no longer distributed with the GNAT 16 native toolchain installed through Alire.

Am I missing something, or have they actually been removed?

And if so, why is `gnatls` still being shipped? It seems to me that `gnatfind` and `gnatxref` would be much more useful than `gnatls` for code navigation and semantic analysis.

To give you an idea of just how low-tech the approach is, I was simply planning to add the following to my `AGENTS.md`

> **## Ada / GNAT**
> 
> Prefer semantic navigation over text search.  
> - `gnat find SYMBOL -P bbt.gpr` when investigating a symbol
> 
> - `gnat xref -P bbt.gpr` when investigating architecture, dependencies or impact
> 
> Use grep only for comments, strings and documentation.

---

<div class="post-metadata">

### Author: ![mgrojo](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/mgrojo/32/15_2.png) [@mgrojo](https://forum.ada-lang.io/u/mgrojo)
#### Post date: [October 10, 2026, 4:45pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/7 "2026-10-10T16:45:44Z")

</div>

I remember seeing `gnatfind` and `gnatxref` considered deprecated, but it’s a shame, because they were useful and I don’t see a clear alternative. I suppose they were based on ASIS and it is all related to its deprecation.

Maybe the alternative is `ada_language_server`? Can it be queried by a user/agent from the command line?

In theory, [gpr\_query](https://elpa.gnu.org/packages/doc/gpr-query.html) is an alternative to `gnatxref` and it’s in [Alire](https://alire.ada.dev/crates/emacs_gpr_query.html), but I was unable to get it compiled directly.

I have an old compilation for Emacs and it works. It’s a bit weird to use it directly, but probably the agents won’t mind as we do.

```sh
alr exec -- ~/.local/emacs-good-bin/gpr_query -P coap_client.gpr --command "refs spark_terminal:coap_client.adb:25 global full_file_names"
version: 3                                       
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:25:6 (with line)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:57:7 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:60:18 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:61:18 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:95:10 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:98:21 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:99:21 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:221:10 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:221:42 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:235:7 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:236:14 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:237:14 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:243:7 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:244:16 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:245:24 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:254:27 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:256:10 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:259:16 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:262:18 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:268:13 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:272:15 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:288:29 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:293:13 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:296:16 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:301:21 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:324:13 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:330:13 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:331:17 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:335:30 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:338:16 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:346:13 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:350:50 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:358:47 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:362:7 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_client.adb:376:21 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:1:6 (with line)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:54:21 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:56:13 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:58:16 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:61:51 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:62:46 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:72:12 (reference)
/home/mgr/src/github/mgrojo/coap_spark/client/src/coap_secure.adb:74:12 (reference)
/home/mgr/src/github/mgrojo/coap_spark/libs/wolfssl/wrapper/Ada/spark_terminal.adb:1:14 (body)
/home/mgr/src/github/mgrojo/coap_spark/libs/wolfssl/wrapper/Ada/spark_terminal.adb:18:5 (label on end line)
/home/mgr/src/github/mgrojo/coap_spark/libs/wolfssl/wrapper/Ada/spark_terminal.ads:28:9 (declaration)
/home/mgr/src/github/mgrojo/coap_spark/libs/wolfssl/wrapper/Ada/spark_terminal.ads:43:5 (label on end line)

```

---

<div class="post-metadata">

### Author: ![LionelDraghi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lioneldraghi/32/416_2.png) [@LionelDraghi](https://forum.ada-lang.io/u/LionelDraghi)
#### Post date: [October 10, 2026, 5:16pm UTC](https://forum.ada-lang.io/t/please-back-the-inclusion-of-ada-in-codegraph/4712/8 "2026-10-10T17:16:44Z")

</div>

> [@mgrojo](#):
>
> I remember seeing `gnatfind` and `gnatxref` considered deprecated, but it’s a shame, because they were useful and I don’t see a clear alternative. I suppose they were based on ASIS and it is all related to its deprecation.
> 
> Maybe the alternative is `ada_language_server`? Can it be queried by a user/agent from the command line?

Yes, I got the info and forgot to forward it here, both where mark deprecated long time ago and then removed.  
It seems that there is no easy way to get an intermediate solution between grep and mcp!

ALS is the way to go, and now I experiment the mcp-als bridge.

I found this one [GitHub - MDBrothers/ada-mcp-server: An MCP server wrapper in Python for the standard Ada Language Server (ALS) · GitHub](https://github.com/MDBrothers/ada-mcp-server), send some issues.  
There is another one, [GitHub - gtnoble/mcp-ada: An MCP library for the Ada language · GitHub](https://github.com/gtnoble/mcp-ada), but with no readme…

But maybe it would be more reliable to use a generic mcp to lsp proxifier, I don’t know.
