Files
doomemacs/modules/lang/ada/README.org
Troy Brown 31c43cdceb fix(ada): use gpr-specific modes and indent properly
GNAT Project modes (`gpr-mode` and `gpr-ts-mode`) exist to handle .gpr files.
These modes are now used instead of the Ada major mode.

Lines may need to be re-indented when RET is pressed.  This is to handle cases
of incomplete syntax and ambiguity in what may be entered when an empty line is
initially indented.  Re-indenting after text has been entered corrects
incorrectly guessed initial indentation.  To accommodate this scenario, RET is
remapped to `reindent-then-newline-and-indent`.

Also updates documentation to reflect these changes.
2025-09-21 19:45:01 -04:00

71 lines
2.4 KiB
Org Mode

: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