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.
This commit is contained in:
Troy Brown
2025-09-19 00:45:15 -04:00
committed by Henrik Lissner
parent fa6a2607b7
commit 31c43cdceb
3 changed files with 35 additions and 3 deletions

View File

@@ -20,8 +20,8 @@ This module adds support for the Ada and SPARK programming languages.
** Module flags
# Flags should be in alphanumerical order.
- +lsp ::
Enable LSP support for ~ada-mode~ / ~ada-ts-mode~. Requires [[doom-module::tools lsp]]
and a langserver (supports [[https://github.com/AdaCore/ada_language_server][ada_language_server]]).
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+.
@@ -29,6 +29,8 @@ This module adds support for the Ada and SPARK programming languages.
** 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