The upcoming compiler change trades spurious errors (reject-valid bugfixes)
for valid errors (accept-invalid bugfixes), and now flags a few problematic
constructs in the codebase:
gps-editors.ads:1291:04: error: deferred constant "Nil_Editor_Mark" is frozen before completion
gps-editors.ads:1291:04: error: because expression of function "Create_Mark" is frozen here
gps-editors.ads:1291:04: error: as a primitive operation of type "Dummy_Editor_Location" frozen here
gps-editors.ads:1291:04: error: expression function "Create_Mark" is declared at line 1230
gps-editors.ads:1326:04: error: full constant declaration appears too late
gps-editors.ads:1587:04: error: deferred constant "Nil_Editor_Cursor" is frozen before completion
gps-editors.ads:1587:04: error: because expression of function "Get_Main_Cursor" is frozen here
gps-editors.ads:1587:04: error: as a primitive operation of type "Dummy_Editor_Buffer" frozen here
gps-editors.ads:1587:04: error: expression function "Get_Main_Cursor" is declared at line 1341
gps-editors.ads:1672:04: error: full constant declaration appears too late
language-abstract_language_tree.ads:503:04: error: deferred constant "No_Semantic_Node_Array" is frozen before completion
language-abstract_language_tree.ads:503:04: error: because expression of function "Children" is frozen here
language-abstract_language_tree.ads:503:04: error: as a primitive operation of type "Dummy_Semantic_Node" frozen here
language-abstract_language_tree.ads:503:04: error: expression function "Children" is declared at line 410
language-abstract_language_tree.ads:506:04: error: deferred constant "No_Semantic_Node_Array" is frozen before completion
language-abstract_language_tree.ads:506:04: error: because expression of function "Root_Nodes" is frozen here
language-abstract_language_tree.ads:506:04: error: as a primitive operation of type "Dummy_Semantic_Tree" frozen here
language-abstract_language_tree.ads:506:04: error: expression function "Root_Nodes" is declared at line 477
language-abstract_language_tree.ads:509:04: error: full constant declaration appears too late
xref.ads:367:13: error: this primitive operation is declared too late
xref.ads:371:13: error: this primitive operation is declared too late
[...]
There is a chicken-and-egg issue in language-abstract_language_tree.ads,
whereby the completions of the constants at the end of the file freeze
each other, so there is no legal declaration order for the completions.
Therefore one of them is turned into a function (which is completed by
an expression function) to break the circularity.
Issue: eng/toolchain/gnat#1701
Create one for the construct engine and put it as the same level
as the LSP one. Both providers are supporting two requests:
OnTypeFormatting and OnRangeFormatting. There is no more concept
of indent vs format: these are internal settings/preferences
inside the providers.
Create preferences to choose the provider for each requests.
Create a preference to not move the cursor during formatting.
For eng/ide/gnatstudio#522
For Casing On_The_Fly and End_Of_Word Change "Word_Added"
to check the newly added character after the word.
It handles adding a '"' after 'f'.
For Casing End_Of_Line, change the Ada language to protect 'f"'.
Add a test.
Closes eng/ide/gnatstudio#496
For Casing On_The_Fly and End_Of_Word Change "Word_Added"
to check the newly added character after the word.
It handles adding a '"' after 'f'.
For Casing End_Of_Line, change the Ada language to protect 'f"'.
Add a test.
Closes eng/ide/gnatstudio#496
Doing a search within an editor with ASCII.HT will create invalid
message hightlighting. GPS.Search module is too far from
the concept of Editor_Buffer and visible_column so remove any
reference of it.
Add a test.
eng/ide/gnatstudio#34
* ada_analyzer.adb (Next_Word): Factorize handling of () and reuse the
code (with small adaptations) for [].
TN: UC13-045
Change-Id: Ib097bcdbae567012ee65929c434d639c174ac9aa