:PROPERTIES:
:ID:       0903d239-7eab-47d7-8b88-00420fe6a50f
:END:
#+title:     :lang ada
#+subtitle:  In strong typing we (blindly) trust
#+created:   September 13, 2025
#+since:     25.10.0

* Description :unfold:
This module adds support for the Ada and SPARK programming languages.

- Syntax highlighting (optionally via tree-sitter)
- Code completion (via company or corfu)
- LSP support (with [[https://github.com/AdaCore/ada_language_server][ada_language_server]])
- Alire integration (alr build, alr run, alr clean)

** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]

** Module flags
# Flags should be in alphanumerical order.
- +lsp ::
  Enable LSP support for ~ada-mode~ / ~ada-ts-mode~, ~gpr-mode~ / ~gpr-ts-mode~.
  Requires [[doom-module::tools lsp]] and a langserver (supports [[https://github.com/AdaCore/ada_language_server][ada_language_server]]).
- +tree-sitter ::
  Leverages tree-sitter for better syntax highlighting and structural text
  editing. Requires [[doom-module::tools tree-sitter]] and Emacs 29.1+.

** Packages
- [[doom-package:ada-mode]]
- [[doom-package:ada-ts-mode]] if [[doom-module:+tree-sitter]]
- [[doom-package:gpr-mode]]
- [[doom-package:gpr-ts-mode]] if [[doom-module:+tree-sitter]]

** Hacks
- ~ada-ts-mode~ has been advised not to set ~treesit-language-source-alist~ and
  ~eglot-server-programs~ buffer-locally, because this overrides global settings
  (by the user or Doom modules) in a non-standard way.

** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./

* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]

#+begin_quote
󱌣 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]]
#+end_quote

* Usage
#+begin_quote
󱌣 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* TODO Configuration
#+begin_quote
󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]

* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]

* TODO Appendix
#+begin_quote
󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote
