>------------------------------------------------------------------------------
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
>--                         Language Server Protocol                         --
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
>--                                                                          --
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
#                                                                          ^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                            ^^^ source.ada comment.line.double-dash.ada
>--                     Copyright (C) 2018-2019, AdaCore                     --
#^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
>--                                                                          --
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
#                                                                          ^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                            ^^^ source.ada comment.line.double-dash.ada
>-- This is free software;  you can redistribute it  and/or modify it  under --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                           ^^^^ source.ada comment.line.double-dash.ada
>-- terms of the  GNU General Public License as published  by the Free Soft- --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                            ^^^ source.ada comment.line.double-dash.ada
>-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                            ^^^ source.ada comment.line.double-dash.ada
>-- sion.  This software is distributed in the hope  that it will be useful, --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                           ^^^^ source.ada comment.line.double-dash.ada
>-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                            ^^^ source.ada comment.line.double-dash.ada
>-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                           ^^^^ source.ada comment.line.double-dash.ada
>-- License for  more details.  You should have  received  a copy of the GNU --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                           ^^^^ source.ada comment.line.double-dash.ada
>-- General  Public  License  distributed  with  this  software;   see  file --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                           ^^^^ source.ada comment.line.double-dash.ada
>-- COPYING3.  If not, go to http://www.gnu.org/licenses for a complete copy --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                                                                           ^^^^ source.ada comment.line.double-dash.ada
>-- of the license.                                                          --
#^^^ source.ada comment.line.double-dash.ada
#   ^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada entity.name.section.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
>------------------------------------------------------------------------------
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada comment.line.double-dash.ada
>
>with Ada.Characters.Handling; use Ada.Characters.Handling;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                            ^ source.ada meta.context.with.ada punctuation.ada
#                             ^ source.ada
#                              ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                                 ^ source.ada meta.context.use.package.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                                         ^ source.ada meta.context.use.package.ada punctuation.ada
>with Ada.Characters.Latin_1;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                           ^ source.ada meta.context.with.ada punctuation.ada
>with Ada.Strings.Wide_Wide_Unbounded;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                                    ^ source.ada meta.context.with.ada punctuation.ada
>with Ada.Strings.UTF_Encoding;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                             ^ source.ada meta.context.with.ada punctuation.ada
>with Ada.Strings.UTF_Encoding.Wide_Wide_Strings;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                                               ^ source.ada meta.context.with.ada punctuation.ada
>with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                          ^ source.ada meta.context.with.ada punctuation.ada
#                           ^ source.ada
#                            ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                               ^ source.ada meta.context.use.package.ada
#                                ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                                     ^ source.ada meta.context.use.package.ada punctuation.ada
>with Ada.Directories;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                    ^ source.ada meta.context.with.ada punctuation.ada
>with Ada.Unchecked_Deallocation;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                               ^ source.ada meta.context.with.ada punctuation.ada
>
>with GNAT.OS_Lib; use GNAT.OS_Lib;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                ^ source.ada meta.context.with.ada punctuation.ada
#                 ^ source.ada
#                  ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                     ^ source.ada meta.context.use.package.ada
#                      ^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                 ^ source.ada meta.context.use.package.ada punctuation.ada
>with GNAT.Strings;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                 ^ source.ada meta.context.with.ada punctuation.ada
>with GNATCOLL.JSON;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                  ^ source.ada meta.context.with.ada punctuation.ada
>with GNATCOLL.Utils;             use GNATCOLL.Utils;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                   ^ source.ada meta.context.with.ada punctuation.ada
#                    ^^^^^^^^^^^^^ source.ada
#                                 ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                                    ^ source.ada meta.context.use.package.ada
#                                     ^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                                   ^ source.ada meta.context.use.package.ada punctuation.ada
>with GNATCOLL.VFS_Utils;         use GNATCOLL.VFS_Utils;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                       ^ source.ada meta.context.with.ada punctuation.ada
#                        ^^^^^^^^^ source.ada
#                                 ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                                    ^ source.ada meta.context.use.package.ada
#                                     ^^^^^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                                       ^ source.ada meta.context.use.package.ada punctuation.ada
>
>with LSP.Ada_Documents; use LSP.Ada_Documents;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                      ^ source.ada meta.context.with.ada punctuation.ada
#                       ^ source.ada
#                        ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                           ^ source.ada meta.context.use.package.ada
#                            ^^^^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                             ^ source.ada meta.context.use.package.ada punctuation.ada
>with LSP.Ada_Contexts;  use LSP.Ada_Contexts;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                     ^ source.ada meta.context.with.ada punctuation.ada
#                      ^^ source.ada
#                        ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                           ^ source.ada meta.context.use.package.ada
#                            ^^^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                            ^ source.ada meta.context.use.package.ada punctuation.ada
>with LSP.Ada_Handlers.Named_Parameters_Commands;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                                               ^ source.ada meta.context.with.ada punctuation.ada
>with LSP.Commands;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                 ^ source.ada meta.context.with.ada punctuation.ada
>with LSP.Common;       use LSP.Common;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#               ^ source.ada meta.context.with.ada punctuation.ada
#                ^^^^^^^ source.ada
#                       ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                          ^ source.ada meta.context.use.package.ada
#                           ^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                     ^ source.ada meta.context.use.package.ada punctuation.ada
>with LSP.Errors;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#               ^ source.ada meta.context.with.ada punctuation.ada
>with LSP.Lal_Utils;    use LSP.Lal_Utils;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                  ^ source.ada meta.context.with.ada punctuation.ada
#                   ^^^^ source.ada
#                       ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                          ^ source.ada meta.context.use.package.ada
#                           ^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                        ^ source.ada meta.context.use.package.ada punctuation.ada
>with LSP.Messages.Client_Requests;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                                 ^ source.ada meta.context.with.ada punctuation.ada
>with LSP.Messages.Server_Notifications;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                                      ^ source.ada meta.context.with.ada punctuation.ada
>with LSP.Types;        use LSP.Types;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#              ^ source.ada meta.context.with.ada punctuation.ada
#               ^^^^^^^^ source.ada
#                       ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                          ^ source.ada meta.context.use.package.ada
#                           ^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                    ^ source.ada meta.context.use.package.ada punctuation.ada
>
>with Langkit_Support.Slocs;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                          ^ source.ada meta.context.with.ada punctuation.ada
>with Langkit_Support.Text;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                         ^ source.ada meta.context.with.ada punctuation.ada
>
>with Libadalang.Analysis;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                        ^ source.ada meta.context.with.ada punctuation.ada
>with Libadalang.Common;    use Libadalang.Common;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                      ^ source.ada meta.context.with.ada punctuation.ada
#                       ^^^^ source.ada
#                           ^^^ source.ada meta.context.use.package.ada keyword.other.using.ada
#                              ^ source.ada meta.context.use.package.ada
#                               ^^^^^^^^^^^^^^^^^ source.ada meta.context.use.package.ada entity.name.package.ada
#                                                ^ source.ada meta.context.use.package.ada punctuation.ada
>with Libadalang.Doc_Utils;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^^^^^^^^^^^^^^^^^ source.ada meta.context.with.ada entity.name.package.ada
#                         ^ source.ada meta.context.with.ada punctuation.ada
>
>with URIs;
#^^^^ source.ada meta.context.with.ada keyword.other.using.ada
#    ^ source.ada meta.context.with.ada
#     ^^^^ source.ada meta.context.with.ada entity.name.package.ada
#         ^ source.ada meta.context.with.ada punctuation.ada
>
>package body LSP.Ada_Handlers is
#^^^^^^^ source.ada meta.declaration.package.body.ada keyword.ada
#       ^ source.ada meta.declaration.package.body.ada
#        ^^^^ source.ada meta.declaration.package.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada
#             ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada
#                              ^^ source.ada meta.declaration.package.body.ada keyword.ada
>
>   type Cancel_Countdown is mod 128;
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada keyword.ada
#       ^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada
#        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada entity.name.type.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada entity.name.type.ada punctuation.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada keyword.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada storage.modifier.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada
#                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada constant.numeric.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.type.definition.regular.ada punctuation.ada
>   --  Counter to restrict frequency of Request.Canceled checks
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   Allow_Incremental_Text_Changes : constant GNATCOLL.Traces.Trace_Handle :=
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada variable.name.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada storage.modifier.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.operator.new.ada
>     GNATCOLL.Traces.Create ("ALS.ALLOW_INCREMENTAL_TEXT_CHANGES",
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>                             GNATCOLL.Traces.Off);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>   --  Trace to activate the support for incremental text changes.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  This will be made active by default once it's been field-tested.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   Is_Parent : constant LSP.Messages.AlsReferenceKind_Set :=
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada variable.name.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada storage.modifier.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.operator.new.ada
>     (Is_Server_Side => True,
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>      As_Flags => (LSP.Messages.Parent => True, others => False));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                   ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                                         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                                                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>   Is_Child : constant LSP.Messages.AlsReferenceKind_Set :=
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada storage.modifier.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.operator.new.ada
>     (Is_Server_Side => True,
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>      As_Flags => (LSP.Messages.Child => True, others => False));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                   ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.other.ada
#                                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>   --  Convenient constants
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   Line_Feed : constant Character := Ada.Characters.Latin_1.LF;
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada variable.name.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada storage.modifier.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                        ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                    ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada constant.numeric.ada
#                                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.object.ada punctuation.ada
>
>   function "+" (Text : Ada.Strings.UTF_Encoding.UTF_8_String)
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada punctuation.definition.string.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>     return LSP.Types.LSP_String renames
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>       LSP.Types.To_LSP_String;
#^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   procedure Send_Imprecise_Xref_Message
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self     : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      URI      : LSP.Messages.DocumentUri;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Position : LSP.Messages.Position;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Msg_Type : LSP.Messages.MessageType);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Send a message of the given Msg_Type to the LSP client to warn the user
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  of a possible imprecise result while computing xrefs on the given
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  node.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   subtype Context_Access is LSP.Ada_Context_Sets.Context_Access;
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada keyword.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada
#           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada keyword.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.subtype.ada punctuation.ada
>
>   procedure Imprecise_Resolve_Name
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self       : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      In_Context : Context_Access;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Position   : LSP.Messages.TextDocumentPositionParams'Class;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada punctuation.ada
#                                                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Definition : out Libadalang.Analysis.Defining_Name;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Msg_Type   : LSP.Messages.MessageType := LSP.Messages.Log);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.operator.new.ada
#                                              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  If node at given Position is a name, then resolve it.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  Send a message in case of a possible imprecise result.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  See description of Msg_Type in Send_Imprecise_Xref_Message comments.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   function To_File (URI : LSP.Messages.DocumentUri) return Virtual_File is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>     (Create (+(URIs.Conversions.To_File (To_UTF_8_String (URI)))));
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.operator.adding.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada constant.numeric.ada
#                                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>   --  Utility conversion function
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Show_Message
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Text : String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Mode : LSP.Messages.MessageType := LSP.Messages.Error);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.operator.new.ada
#                                        ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Convenience function to send a message to the user.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   function Get_Unique_Progress_Token
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self      : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Operation : String := "") return LSP_Number_Or_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.operator.new.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada punctuation.definition.string.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada punctuation.definition.string.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>   --  Return an unique token for indicating progress
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Index_Files (Self : access Message_Handler);
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Index all loaded files in each context. Emit progresormation.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Unchecked_Free is new Ada.Unchecked_Deallocation
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada keyword.operator.new.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada
#                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada entity.name.function.ada
>     (LSP.Ada_Documents.Document, Internal_Document_Access);
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada punctuation.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada punctuation.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.package.generic.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   procedure Release_Project_Info (Self : access Message_Handler);
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Release the memory associated to project information in Self
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   function Contexts_For_URI
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      URI  : LSP.Messages.DocumentUri)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Ada_Context_Sets.Context_Lists.List;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>   --  Return a list of contexts that are suitable for the given URI:
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  a list of all contexts where the file is known to be part of the
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  project tree, or is a runtime file for this project. If the file
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  is not known to any project, return an empty list.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  The result should not be freed.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Reload_Implicit_Project_Dirs (Self : access Message_Handler);
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Reload as project source dirs the directories in
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  Self.Project_Dirs_Loaded.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   ---------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Project loading --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   --  The heuristics that is used for loading a project is the following:
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --     * if a project (and optionally a scenario) was specified by
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --       the user via the workspace/didChangeConfiguration request,
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --       attempt to use this. If this fails to load, report an error
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --       but do not attempt to load another project.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --     => This case is handled by a call to Load_Project in
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --        On_DidChangeConfiguration_Notification.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --     * if no project was specified by the user, then look in the Root
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --       directory, mimicking the behavior of gprbuild:
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --           * if there are zero .gpr files in this directory, load the
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --             implicit project
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --           * if there is exactly one .gpr file in this directory, load
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --             it, returning an error if this failed
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --           * if there are more than one .gpr files in this directory,
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --             display an error
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --      => These cases are handled by Ensure_Project_Loaded
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  At any point where requests are made, Self.Contexts should
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  contain one or more contexts, each one containing a non-aggregate
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  project hierarchy.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  The attempt to load a project should be done in reaction to
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  On_DidChangeConfiguration_Notification. However, the IDEs that
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  are not configured specifically for this language server might
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  not pass a .gpr file to didChangeConfiguration: for these IDEs,
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  we fallback to loading the project the first time an editor is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  open or a request on non-openned file.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Ensure_Project_Loaded
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Root : LSP.Types.LSP_String := LSP.Types.Empty_LSP_String);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                 ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.operator.new.ada
#                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  This function makes sure that the contexts in Self are properly
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  initialized and a project is loaded. If they are not initialized,
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  initialize them. Use custom Root directory if provided.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Load_Implicit_Project (Self : access Message_Handler);
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Load the implicit project
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Load_Project
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self     : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      GPR      : Virtual_File;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Scenario : LSP.Types.LSP_Any;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Charset  : String);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   --  Attempt to load the given project file, with the scenario provided.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --  This unloads all currently loaded project contexts.
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   ----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Contexts_For_URI --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   function Contexts_For_URI
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      URI  : LSP.Messages.DocumentUri)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Ada_Context_Sets.Context_Lists.List
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      File : constant Virtual_File := To_File (URI);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      function Is_A_Source (Self : LSP.Ada_Contexts.Context) return Boolean is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>        (Self.Is_Part_Of_Project (File));
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>      --  Return True if File is a source of the project held by Context
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      --  If the file does not exist on disk, assume this is a file
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  being created and, as a special convenience in this case,
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  assume it could belong to any project.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      if not File.Is_Regular_File
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>      --  If the file is a runtime file for the loaded project environment,
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada comment.line.double-dash.ada
>      --  all projects can see it.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada comment.line.double-dash.ada
>        or else Self.Project_Predefined_Sources.Contains (File)
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>      then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return Self.Contexts.Each_Context;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  List contexts where File is a source of the project hierarchy
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      return Self.Contexts.Each_Context (Is_A_Source'Unrestricted_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                         ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada meta.attribute.ada punctuation.ada
#                                                     ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end Contexts_For_URI;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Get_Open_Document --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function Get_Open_Document
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self  : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      URI   : LSP.Messages.DocumentUri;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Force : Boolean := False)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.operator.new.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Ada_Documents.Document_Access is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Self.Ensure_Project_Loaded;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      if Self.Open_Documents.Contains (URI) then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return LSP.Ada_Documents.Document_Access
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
>           (Self.Open_Documents.Element (URI));
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#                                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      elsif Force then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            Document : constant Internal_Document_Access :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>              new LSP.Ada_Documents.Document (Self.Trace);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                              ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            Document.Initialize (URI, Empty_LSP_String);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>            return LSP.Ada_Documents.Document_Access (Document);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.return.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.return.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.return.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.return.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.return.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.return.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return null;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada constant.language.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>   end Get_Open_Document;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ---------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Send_Imprecise_Xref_Message --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Send_Imprecise_Xref_Message
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self     : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      URI      : LSP.Messages.DocumentUri;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Position : LSP.Messages.Position;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Msg_Type : LSP.Messages.MessageType)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      File : constant GNATCOLL.VFS.Virtual_File := To_File (URI);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      Self.Server.On_Show_Message
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>        ((Msg_Type,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         "Imprecise fallback used to compute cross-references on entity at:"
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
>         & To_LSP_String
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
>           (Line_Feed & "   " & File.Display_Base_Name)
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                               ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         & To_LSP_String
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
>           (Line_Feed & "   line:" & Position.line'Img)
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                                    ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada meta.attribute.ada punctuation.ada
#                                                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         & To_LSP_String
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
>           (Line_Feed & "   column:" & Position.character'Img)));
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                                      ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada meta.attribute.ada punctuation.ada
#                                                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end Send_Imprecise_Xref_Message;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ----------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Imprecise_Resolve_Name --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Imprecise_Resolve_Name
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self       : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      In_Context : Context_Access;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Position   : LSP.Messages.TextDocumentPositionParams'Class;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada punctuation.ada
#                                                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Definition : out Libadalang.Analysis.Defining_Name;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Msg_Type   : LSP.Messages.MessageType := LSP.Messages.Log)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.operator.new.ada
#                                              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      use type Libadalang.Analysis.Name;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada keyword.modifier.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada punctuation.ada
>
>      Name_Node : constant Libadalang.Analysis.Name :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>        LSP.Lal_Utils.Get_Node_As_Name
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>          (In_Context.Get_Node_At
#^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#           ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>             (Get_Open_Document (Self, Position.textDocument.uri),
#^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#              ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>              Position));
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>      Imprecise  : Boolean;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      if Name_Node = Libadalang.Analysis.No_Name then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         return;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      Definition := LSP.Lal_Utils.Resolve_Name
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
>        (Name_Node,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Self.Trace,
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Imprecise => Imprecise);
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>      --  If we used the imprecise fallback to get to the definition, log it
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      if Imprecise then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Send_Imprecise_Xref_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           (URI      => Position.textDocument.uri,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada variable.parameter.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.other.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            Position => Position.position,
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada variable.parameter.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.other.ada
#                       ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            Msg_Type => Msg_Type);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada variable.parameter.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.other.ada
#                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>   end Imprecise_Resolve_Name;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   --------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Release_Project_Info --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Release_Project_Info (Self : access Message_Handler) is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      use GNATCOLL.Projects;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada entity.name.package.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      if Self.Project_Tree /= null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.language.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Project_Tree.Unload;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>         Free (Self.Project_Tree);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#               ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>      if Self.Project_Environment /= null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.language.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Free (Self.Project_Environment);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>      Self.Project_Predefined_Sources.Clear;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Project_Dirs_Loaded.Clear;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end Release_Project_Info;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   -------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Cleanup --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#             ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Cleanup (Self : access Message_Handler) is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      --  Cleanup documents
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      for Document of Self.Open_Documents loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Unchecked_Free (Document);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>      Self.Open_Documents.Clear;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Cleanup contexts
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Contexts.Cleanup;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Cleanup project and environment
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Release_Project_Info;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end Cleanup;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   -----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Exit_Notification --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure On_Exit_Notification (Self : access Message_Handler) is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      Self.Server.Stop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end On_Exit_Notification;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ----------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Reload_Implicit_Project_Dirs --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Reload_Implicit_Project_Dirs (Self : access Message_Handler) is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      Attr  : GNAT.Strings.String_List
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
>        (1 .. Natural (Self.Project_Dirs_Loaded.Length));
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.ada
#             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Index : Natural := 1;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      use GNATCOLL.Projects;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada entity.name.package.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      for Dir of Self.Project_Dirs_Loaded loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Attr (Index) := new String'(Dir.Display_Full_Name);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
>         Index := Index + 1;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.new.ada
#                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada constant.numeric.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      Set_Attribute
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>        (Self.Project_Tree.Root_Project,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         Source_Dirs_Attribute,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         Attr);
#^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Project_Tree.Recompute_View;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      for J in Attr'Range loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.attribute.ada punctuation.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.attribute.ada entity.other.attribute-name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         GNAT.Strings.Free (Attr (J));
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>   end Reload_Implicit_Project_Dirs;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Load_Implicit_Project --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Load_Implicit_Project (Self : access Message_Handler) is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      C    : constant Context_Access := new Context (Self.Trace);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                       ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Attr : GNAT.Strings.String_List (1 .. 1);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      use GNATCOLL.Projects;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada entity.name.package.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      --  Unload all the contexts
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Contexts.Cleanup;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      Self.Trace.Trace ("Loading the implicit project");
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      Self.Implicit_Project_Loaded := True;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>      Self.Release_Project_Info;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Initialize (Self.Project_Environment);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Project_Tree := new Project_Tree;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                          ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>      C.Initialize;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Note: we would call Load_Implicit_Project here, but this has
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  two problems:
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --    - there is a bug under Windows where the files returned by
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --      Source_Files have an extraneous directory separator
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --    - the implicit project relies on the current working
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --      of the ALS, which imposes a restriction on clients, and
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --      is an extra pitfall for developers of this server
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  Instead, use Load_Empty_Project and set the source dir and
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  language manually: this does not have these inconvenients.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      Load_Empty_Project
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>        (Self.Project_Tree.all, Self.Project_Environment);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                               ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Attr := (1 => new String'("Ada"));
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada constant.numeric.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                   ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>      Set_Attribute
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>        (Self.Project_Tree.Root_Project, Languages_Attribute, Attr);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                        ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      GNAT.Strings.Free (Attr (1));
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada constant.numeric.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  When there is no .gpr, create a project which loads the
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  root directory in the workspace.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      Self.Project_Dirs_Loaded.Include (Self.Root);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                        ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Reload_Implicit_Project_Dirs;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      C.Load_Project (Self.Project_Tree,
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>                      Self.Project_Tree.Root_Project,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>                      "iso-8859-1");
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      for File of Self.Project_Environment.Predefined_Source_Files loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Self.Project_Predefined_Sources.Include (File);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      Self.Contexts.Prepend (C);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end Load_Implicit_Project;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Ensure_Project_Loaded --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Ensure_Project_Loaded
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Root : LSP.Types.LSP_String := LSP.Types.Empty_LSP_String)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                 ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.operator.new.ada
#                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      GPRs_Found : Natural := 0;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Files      : File_Array_Access;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      GPR        : Virtual_File;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      if not Self.Contexts.Is_Empty then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  Rely on the fact that there is at least one context initialized
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  as a guarantee that the initialization has been done.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         return;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      --  If we never passed through Initialize, this might be empty:
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  initialize it now
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      if Self.Root = No_File and then not LSP.Types.Is_Empty (Root) then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                                         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Root := Create (+To_UTF_8_String (Root));
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada constant.numeric.ada
#                                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      Self.Trace.Trace ("Project loading ...");
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Trace.Trace ("Root : " & To_UTF_8_String
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada constant.numeric.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
>                        (+Self.Root.Display_Full_Name));
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  We're going to look for a project in Root: list all the files
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  in this directory, looking for .gpr files.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      Files := Self.Root.Read_Dir (Files_Only);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#              ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>      if Files /= null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.language.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         for X of Files.all loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
>            if Ends_With (+X.Base_Name, ".gpr") then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.adding.ada
#                           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada string.quoted.double.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>               GPRs_Found := GPRs_Found + 1;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada constant.numeric.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>               exit when GPRs_Found > 1;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada keyword.control.ada
#                        ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada keyword.operator.relational.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada constant.numeric.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada punctuation.ada
>               GPR := X;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada punctuation.ada
>         Unchecked_Free (Files);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      --  What we do depends on the number of .gpr files found:
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      if GPRs_Found = 0 then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.numeric.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  We have found zero .gpr files: load the implicit project
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>
>         Self.Load_Implicit_Project;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      elsif GPRs_Found = 1 then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.numeric.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  We have not found exactly one .gpr file: load the default
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  project.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         Self.Trace.Trace ("Loading " & GPR.Display_Base_Name);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.operator.adding.ada
#                                       ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>         Self.Load_Project (GPR, No_Any, "iso-8859-1");
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                          ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  We have found more than one project: warn the user!
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>
>         Self.Show_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("More than one .gpr found." & Line_Feed &
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.operator.adding.ada
#                                         ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.operator.adding.ada
>              "Note: you can configure a project " &
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.operator.adding.ada
>              " through the ada.projectFile setting.");
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>   end Ensure_Project_Loaded;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Initialize_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Initialize_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Initialize_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Initialize_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      Value    : LSP.Messages.InitializeParams renames Request.params;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
#                                                      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Code_Action : LSP.Messages.Optional_CodeActionClientCapabilities renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Value.capabilities.textDocument.codeAction;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.Initialize_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Root     : LSP.Types.LSP_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.result.capabilities.declarationProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value => (Is_Boolean => True, Bool => True));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.definitionProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (workDoneProgress => (Is_Set => False)));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.typeDefinitionProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value => (Is_Boolean => True, Bool => True));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.implementationProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value => (Is_Boolean => True, Bool => True));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.referencesProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (workDoneProgress => (Is_Set => False)));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.documentSymbolProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (workDoneProgress => (Is_Set => False)));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.renameProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (prepareProvider  => (Is_Set => False),
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>                    workDoneProgress => (Is_Set => False)));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.textDocumentSync :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True, Is_Number => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  =>
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
>           (if Allow_Incremental_Text_Changes.Active then
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.ada
>               LSP.Messages.Incremental
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>            else
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.ada
>               LSP.Messages.Full));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.completionProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (resolveProvider   => (True, False),
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          triggerCharacters => (True, Empty_Vector & (+".")),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          allCommitCharacters => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          workDoneProgress  => (Is_Set => False)));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.hoverProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (workDoneProgress => (Is_Set => False)));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.executeCommandProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (commands => LSP.Commands.All_Commands,
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                               ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>                    workDoneProgress  => (Is_Set => False)));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      if Code_Action.Is_Set and then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
>        Code_Action.Value.codeActionLiteralSupport.Is_Set
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>      then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.result.capabilities.codeActionProvider :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
>           (Is_Set => True,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            Value  =>
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
>              (codeActionKinds =>
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#               ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
>                   (Is_Set => True,
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>                    Value  => LSP.Messages.To_Set
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                             ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
>                      (From => LSP.Messages.RefactorRewrite,
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>                       To   => LSP.Messages.RefactorRewrite)),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>               workDoneProgress => (Is_Set => False)));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.result.capabilities.codeActionProvider :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
>           (Is_Set => True, Value => <>);
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Response.result.capabilities.alsCalledByProvider := True;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                                         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      Response.result.capabilities.alsReferenceKinds :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value  => (Is_Server_Side => True, As_Flags => (others => True)));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      Response.result.capabilities.foldingRangeProvider :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (Is_Set => True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         Value => (Is_Boolean => True, Bool => True));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      if Value.capabilities.textDocument.documentSymbol.Is_Set
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>        and then Value.capabilities.textDocument.documentSymbol.Value
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>          .hierarchicalDocumentSymbolSupport = (True, True)
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>      then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Get_Symbols := LSP.Ada_Documents.Get_Symbol_Hierarchy'Access;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada meta.attribute.ada punctuation.ada
#                                                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Get_Symbols := LSP.Ada_Documents.Get_Symbols'Access;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada meta.attribute.ada punctuation.ada
#                                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      if Value.capabilities.textDocument.foldingRange.Is_Set
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>        and then Value.capabilities.textDocument.foldingRange.Value.
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>          lineFoldingOnly.Is_Set
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>      then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         --  Client capability to fold only entire lines
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         Self.Line_Folding_Only := Value.capabilities.textDocument.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
>           foldingRange.Value.lineFoldingOnly.Value;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      if Value.capabilities.textDocument.completion.completionItem.Is_Set
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>        and then Value.capabilities.textDocument.completion.
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>          completionItem.Value.snippetSupport.Is_Set
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>          and then Value.capabilities.textDocument.completion.
#^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>            completionItem.Value.snippetSupport.Value
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
>      then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         --  Client capability to support snippets for completion
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         Self.Completion_Snippets_Enabled := True;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      if not LSP.Types.Is_Empty (Value.rootUri) then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                 ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Root := URI_To_File (Value.rootUri);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                              ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         --  URI isn't provided, rollback to deprecated rootPath
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         Root := Value.rootPath;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Some clients - notably VS Code as of version 33, when opening a file
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  rather than a workspace - don't provide a root at all. In that case
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  use the current directory as root.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>
>      if LSP.Types.Is_Empty (Root) then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Root := +".";
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Self.Root := Create (+To_UTF_8_String (Root));
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada constant.numeric.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      --  Log the context root
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      Self.Trace.Trace ("Context root: " & To_UTF_8_String (Root));
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada string.quoted.double.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada constant.numeric.ada
#                                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Initialize_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Shutdown_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Shutdown_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Shutdown_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Shutdown_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      return Response : LSP.Messages.Server_Responses.Shutdown_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Shutdown_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_CodeAction_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_CodeAction_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.CodeAction_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.CodeAction_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      Params   : LSP.Messages.CodeActionParams renames Request.params;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
#                                                      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Analyse_In_Context
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Context  : Context_Access;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Document : LSP.Ada_Documents.Document_Access;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Result   : out LSP.Messages.CodeAction_Vector;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Found    : in out Boolean);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Perform refactoring ananlysis given Document in the Context.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  Return Found = True if some refactoring is possible. Populate
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  Result with Code_Actions in this case.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Has_Assoc_Without_Designator
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
>        (Node : Libadalang.Analysis.Basic_Assoc_List) return Boolean;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>      --  Check if Node is Basic_Assoc_List that contains at least one
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  ParamAssoc without a designator.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Analyse_Node
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Context : Context_Access;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Node    : Libadalang.Analysis.Ada_Node;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Result  : out LSP.Messages.CodeAction_Vector;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Found   : in out Boolean;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Done    : in out Boolean);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Look for a possible refactoring in given Node.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  Return Found = True if some refactoring is possible. Populate
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  Result with Code_Actions in this case. Return Done = True if futher
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  analysis has no sense.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      Found_Named_Parameters : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      --  We propose only one choice of Named_Parameters refactoring per
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  request. So, if a user clicks on `1` in `A (B (1))` we propose the
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  refactoring for B (1), but not for A (...) call. We consider this
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  as better user experience.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  This boolean filter to detect such refactoring duplication.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ----------------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Has_Assoc_Without_Designator --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ----------------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Has_Assoc_Without_Designator
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
>        (Node : Libadalang.Analysis.Basic_Assoc_List) return Boolean
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>         Found : Boolean := False;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>         for J of Node loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>            if J.Kind in Libadalang.Common.Ada_Param_Assoc and then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
>              J.As_Param_Assoc.F_Designator.Is_Null
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
>            then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>               Found := True;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>               exit;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.exit.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>         if not Found then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>            return False;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada keyword.ada
>            Expr : constant Libadalang.Analysis.Ada_Node := Node.Parent;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            Name : Libadalang.Analysis.Name;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            Decl : Libadalang.Analysis.Basic_Decl;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada keyword.ada
>            case Expr.Kind is
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
#                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
>               when Libadalang.Common.Ada_Call_Expr =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                  Name := Expr.As_Call_Expr.F_Name;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.assignment.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.assignment.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.assignment.ada keyword.operator.new.ada
#                         ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.assignment.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.assignment.ada punctuation.ada
>               when others =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.modifier.unknown.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                  return False;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>            end case;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada punctuation.ada
>
>            Decl := Name.P_Referenced_Decl;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>
>            if Decl.Is_Null then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               return False;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>
>            case Decl.Kind is
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
#                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
>               when Libadalang.Common.Ada_Base_Subp_Spec =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                  return True;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>               when Libadalang.Common.Ada_Base_Subp_Body =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                  return True;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>               when Libadalang.Common.Ada_Basic_Subp_Decl =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                  return True;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>               when others =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.modifier.unknown.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                  return False;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>            end case;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.case.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.block.ada punctuation.ada
>      end Has_Assoc_Without_Designator;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>      ------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Analyse_Node --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Analyse_Node
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Context : Context_Access;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Node    : Libadalang.Analysis.Ada_Node;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Result  : out LSP.Messages.CodeAction_Vector;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Found   : in out Boolean;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Done    : in out Boolean)
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         procedure Append_Command (Node : Libadalang.Analysis.Ada_Node);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                          ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>         --  Contruct a command and append it to Result
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         --------------------
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         -- Append_Command --
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --------------------
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         procedure Append_Command (Node : Libadalang.Analysis.Ada_Node) is
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                          ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>            Command : LSP.Ada_Handlers.Named_Parameters_Commands.Command;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Pointer : LSP.Commands.Command_Pointer;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Item    : LSP.Messages.CodeAction;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Where   : constant LSP.Messages.Location :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>              LSP.Lal_Utils.Get_Node_Location (Node);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>            if Found_Named_Parameters then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>               return;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>            Command.Initialize
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>              (Context => Context.all,
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada variable.parameter.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                         ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>               Where   => ((uri => Where.uri), Where.span.first));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada variable.parameter.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>            Pointer.Set (Command);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>            Item :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>              (title       => +"Name parameters in the call",
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#               ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>               kind        => (Is_Set => True,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>                               Value  => LSP.Messages.RefactorRewrite),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>               diagnostics => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>               edit        => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>               isPreferred => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>               command     => (Is_Set => True,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>                               Value  =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
>                                 (Is_Unknown => False,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                  ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>                                  title      => +"",
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>                                  Custom     => Pointer)));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>            Result.Append (Item);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>            Found := True;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>            Found_Named_Parameters := True;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         end Append_Command;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>         Kind : constant Libadalang.Common.Ada_Node_Kind_Type := Node.Kind;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         case Kind is
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada keyword.control.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada keyword.control.ada
>            when Libadalang.Common.Ada_Stmt
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
>               | Libadalang.Common.Ada_Basic_Decl =>
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>
>               Done := True;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.assignment.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.assignment.ada punctuation.ada
>
>            when Libadalang.Common.Ada_Basic_Assoc_List =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>               if Has_Assoc_Without_Designator (Node.As_Basic_Assoc_List) then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada keyword.control.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada punctuation.ada
#                                                ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada keyword.control.ada
#                                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada keyword.control.ada
>                  Append_Command (Node);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada
#                  ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada meta.statement.call.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.if.ada punctuation.ada
>
>            when Libadalang.Common.Ada_Call_Expr =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>               declare
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
>                  List : constant Libadalang.Analysis.Ada_Node :=
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                    Node.As_Call_Expr.F_Suffix;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               begin
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
>                  if List.Kind in Libadalang.Common.Ada_Basic_Assoc_List
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                    ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
>                    and then Has_Assoc_Without_Designator
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.ada
#                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
>                      (List.As_Basic_Assoc_List)
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>                  then
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>                     Append_Command (List);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                  end if;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>               end;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.block.ada punctuation.ada
>
>            when others =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.modifier.unknown.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>               null;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.null.ada keyword.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada meta.statement.null.ada punctuation.ada
>
>         end case;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.case.ada punctuation.ada
>      end Analyse_Node;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Analyse_In_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Analyse_In_Context
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Context  : Context_Access;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Document : LSP.Ada_Documents.Document_Access;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Result   : out LSP.Messages.CodeAction_Vector;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>         Found    : in out Boolean)
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada keyword.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Done : Boolean := False;  --  True when futher analysis has no sense
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         Node : Libadalang.Analysis.Ada_Node :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>           Document.Get_Node_At (Context.all, Params.span.first);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                 ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                             ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         while not Done and then not Node.Is_Null loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.operator.highest-precedence.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.operator.highest-precedence.ada
#                                    ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
>            Analyse_Node (Context, Node, Result, Found, Done);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
#                                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.call.ada punctuation.ada
>            Node := Node.Parent;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada keyword.operator.new.ada
#                   ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada punctuation.ada
>      end Analyse_In_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Params.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Response : LSP.Messages.Server_Responses.CodeAction_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Found : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      if Document = null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada constant.language.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Find any context where we can do some refactoring
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      for C of Self.Contexts_For_URI (Params.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Analyse_In_Context (C, Document, Response.result, Found);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled or else Found;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_CodeAction_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   --------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Execute_Command_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Execute_Command_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Execute_Command_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.ExecuteCommand_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      Error    : LSP.Errors.Optional_ResponseError;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Params   : LSP.Messages.ExecuteCommandParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.ExecuteCommand_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      if Params.Is_Unknown or else Params.Custom.Is_Null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.error :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
>           (True,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            (code => LSP.Errors.InternalError,
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>             message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>             data    => <>));
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Params.Custom.Unchecked_Get.Execute
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
>        (Handler => Self,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Client  => Self.Server,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                   ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Error   => Error);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      if Error.Is_Set then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.error := Error;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  No particular response in case of success.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      return (Is_Error => False,
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>              Error    => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>              others   => <>);
#^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.relational.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.relational.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Execute_Command_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ----------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Declaration_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Declaration_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Declaration_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>
>      Position   : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response   : LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Imprecise  : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Position.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      for C of Self.Contexts_For_URI (Position.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         C.Append_Declarations
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
>           (Document,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>            Position,
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>            Response.result,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>            Imprecise);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      if Imprecise then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Show_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("The result of 'declaration' is approximate.",
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            LSP.Messages.Warning);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Sort_And_Remove_Duplicates (Response.result.Locations);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Declaration_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Implementation_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Implementation_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Implementation_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Position   : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response   : LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Imprecise  : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Position.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Resolve_In_Context (C : Context_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Utility function to gather results on one context
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Resolve_In_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Resolve_In_Context (C : Context_Access) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Name_Node      : constant Name := LSP.Lal_Utils.Get_Node_As_Name
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>           (C.Get_Node_At (Document, Position));
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>         procedure List_Bodies_Of
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>           (Definition : Defining_Name;
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>            Kind       : LSP.Messages.AlsReferenceKind_Set);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>         --  List all the bodies of Definition, with the given kind as label
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         --------------------
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         -- List_Bodies_Of --
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --------------------
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         procedure List_Bodies_Of
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>           (Definition : Defining_Name;
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>            Kind       : LSP.Messages.AlsReferenceKind_Set)
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>         is
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>            Next_Part  : Defining_Name;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Loop_Count : Natural := 0;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Parents    : constant Ada_Node_Array := Definition.Parents;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                   ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>            --  If this happens to be the definition of a subprogram that
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            --  does not call for a body, let's consider that this *is* the
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            --  implementation. Return this, and do not attempt to look
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            --  for secondary implementations in this case.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            if Parents'Length > 2 and then Parents (Parents'First + 2).Kind in
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada punctuation.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada entity.other.attribute-name.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.numeric.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                          ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada punctuation.ada
#                                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.adding.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.numeric.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
>              Libadalang.Common.Ada_Null_Subp_Decl     --  "is null" procedure?
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>                | Libadalang.Common.Ada_Expr_Function  --  expression function?
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>               Append_Location (Response.result, Definition, Kind);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               return;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>            --  If the definition that we found is a body, add this to the list
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            if Parents'Length > 2 and then Parents (Parents'First + 2).Kind in
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada punctuation.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada entity.other.attribute-name.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.numeric.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                          ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada punctuation.ada
#                                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.adding.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada constant.numeric.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
>              Libadalang.Common.Ada_Subp_Body
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
>            then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>               Append_Location (Response.result, Definition, Kind);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>            Next_Part := Definition;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>            --  Now that we have a definition, list all the implementations for
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            --  this definition. We do this by iterating on Find_Next_Part
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            loop
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada keyword.control.ada
>               --  Safety net, don't rely on the results making sense, since
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada comment.line.double-dash.ada
>               --  the code might be invalid.
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada comment.line.double-dash.ada
>               Next_Part := Find_Next_Part (Next_Part, Self.Trace);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada keyword.operator.new.ada
#                           ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                                      ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
>
>               exit when Next_Part = No_Defining_Name;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada keyword.control.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada keyword.operator.relational.ada
#                                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.exit.ada punctuation.ada
>
>               Append_Location (Response.result, Next_Part, Kind);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.call.ada punctuation.ada
>
>               Loop_Count := Loop_Count + 1;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada keyword.operator.new.ada
#                            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada constant.numeric.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
>               if Loop_Count > 5 then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada keyword.control.ada
#                 ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada keyword.operator.relational.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada constant.numeric.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada keyword.control.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada keyword.control.ada
>                  Imprecise := True;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada
#                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>                  exit;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.exit.ada keyword.control.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada meta.statement.exit.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada meta.statement.if.ada punctuation.ada
>            end loop;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.ada punctuation.ada
>         end List_Bodies_Of;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>         Definition     : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         This_Imprecise : Boolean;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Decl           : Basic_Decl;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         if Name_Node = No_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         --  Find the definition
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         Definition := Resolve_Name (Name_Node, Self.Trace, This_Imprecise);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Imprecise := Imprecise or This_Imprecise;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.ada
#                                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>         --  If we didn't find a definition, give up for this context
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         if Definition = No_Defining_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         --  First list the bodies of this definition
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         List_Bodies_Of (Definition, LSP.Messages.Empty_Set);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>         --  Then list the bodies of the parent implementations
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         Decl := Definition.P_Basic_Decl;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         for Subp of C.Find_All_Base_Declarations (Decl, This_Imprecise) loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                        ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>            List_Bodies_Of (Subp.P_Defining_Name, Is_Parent);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                            ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                 ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>         Imprecise := Imprecise or This_Imprecise;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.ada
#                                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>         --  And finally the bodies of child implementations
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         for Subp of C.Find_All_Overrides (Decl, This_Imprecise) loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>            List_Bodies_Of (Subp.P_Defining_Name, Is_Child);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                            ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>         Imprecise := Imprecise or This_Imprecise;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.ada
#                                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>      end Resolve_In_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      for C of Self.Contexts_For_URI (Position.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Resolve_In_Context (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      if Imprecise then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Show_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("The result of 'implementation' is approximate.",
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            LSP.Messages.Warning);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Sort_And_Remove_Duplicates (Response.result.Locations);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Implementation_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Definition_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Definition_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Definition_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Value      : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response   : LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Imprecise  : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Resolve_In_Context (C : Context_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Utility function, appends to Resonse.result all results of the
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  definition requests found in context C.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Resolve_In_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Resolve_In_Context (C : Context_Access) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Name_Node               : constant Name :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>                                     LSP.Lal_Utils.Get_Node_As_Name
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>                                       (C.Get_Node_At (Document, Value));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                        ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Definition              : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Other_Part              : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Manual_Fallback         : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                        ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Decl_For_Find_Overrides : Basic_Decl;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         if Name_Node = No_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         --  Check if we are on some defining name
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         Definition := Get_Name_As_Defining (Name_Node);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>         if Definition = No_Defining_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            Self.Imprecise_Resolve_Name
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>              (C, Value, Definition, LSP.Messages.Info);
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>            if Definition /= No_Defining_Name then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>               Append_Location (Response.result, Definition);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>               Decl_For_Find_Overrides := Definition.P_Basic_Decl;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                         ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>         else  --  If we are on a defining_name already
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            Other_Part := Find_Next_Part (Definition, Self.Trace);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                          ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>            Decl_For_Find_Overrides := Definition.P_Basic_Decl;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>            if Other_Part = No_Defining_Name then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                           ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>               --  No next part is found. Check first defining name
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>               Other_Part := Find_Canonical_Part (Definition, Self.Trace);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                            ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>
>            if Other_Part /= No_Defining_Name then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>               Append_Location (Response.result, Other_Part);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            else
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>               --  We were on a defining name, but did not manage to find
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>               --  an answer using Find_Next_Part / Find_Canonical_Part.
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>               --  Use the manual fallback to attempt to find a good enough
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>               --  result.
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>               Manual_Fallback := Find_Other_Part_Fallback
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
>                 (Definition, Self.Trace);
#^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>               if Manual_Fallback /= No_Defining_Name then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                 ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>                  --  We have found a result using the imprecise heuristics.
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>                  --  We'll warn the user and send the result.
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>                  Imprecise := True;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>                  Append_Location (Response.result, Manual_Fallback);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                   ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                   ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         if Decl_For_Find_Overrides /= Libadalang.Analysis.No_Basic_Decl then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            declare
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>               Imprecise_Over       : Boolean;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               Imprecise_Base       : Boolean;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               Overriding_Subps     : constant Basic_Decl_Array :=
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                 C.Find_All_Overrides
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
>                   (Decl_For_Find_Overrides,
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                    Imprecise_Results => Imprecise_Over);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                                        ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               Base_Subps           : constant Basic_Decl_Array :=
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                         ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                 C.Find_All_Base_Declarations
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
>                   (Decl_For_Find_Overrides,
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                    Imprecise_Results => Imprecise_Base);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                                        ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            begin
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>               for Subp of Base_Subps loop
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                          ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>                  Append_Location
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
>                    (Response.result, Subp.P_Defining_Name, Is_Parent);
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>               end loop;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>               for Subp of Overriding_Subps loop
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>                  Append_Location
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
>                    (Response.result, Subp.P_Defining_Name, Is_Child);
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>               end loop;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>               Imprecise := Imprecise or Imprecise_Over or Imprecise_Base;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada keyword.ada
#                                        ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada keyword.ada
#                                                          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>            end;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>      end Resolve_In_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      for C of Self.Contexts_For_URI (Value.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Resolve_In_Context (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      if Imprecise then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Show_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("The result of 'definition' is approximate.",
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            LSP.Messages.Warning);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Sort_And_Remove_Duplicates (Response.result.Locations);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Definition_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   --------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Type_Definition_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Type_Definition_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Type_Definition_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Position   : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response   : LSP.Messages.Server_Responses.Location_Link_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Imprecise  : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Position.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Resolve_In_Context (C : Context_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Utility function to gather results on one context
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Resolve_In_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Resolve_In_Context (C : Context_Access) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Name_Node      : constant Name := LSP.Lal_Utils.Get_Node_As_Name
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>             (C.Get_Node_At (Document, Position));
#^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#              ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Definition     : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Type_Decl : Base_Type_Decl;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         if Name_Node = No_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         if Name_Node.P_Is_Defining then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            --  Special case if Name_Node is defining, for instance on the X in
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            --      X : My_Type;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            declare
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>               Def_Name : constant Defining_Name :=
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                 Name_Node.P_Enclosing_Defining_Name;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               Type_Expr : constant Libadalang.Analysis.Type_Expr :=
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                 Def_Name.P_Basic_Decl.P_Type_Expression;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            begin
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>               if not Type_Expr.Is_Null then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                     ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>                  Definition := Resolve_Name
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
>                    (Type_Expr.P_Type_Name, Self.Trace, Imprecise);
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                       ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>            end;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>         else
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            --  Name_Node is not defining. In this case we can rely on
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            --  P_Expression_Type.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            Type_Decl := Name_Node.P_Expression_Type;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>            --  P_Expression_Type returns the entire expression: narrow the
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            --  result down to the type declaration. Here we assume that the
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            --  first defining name in this expression is the name of the type.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>            if Type_Decl /= No_Type_Decl then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                           ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>               Definition := Type_Decl.P_Defining_Name;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                            ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         if Definition /= No_Defining_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            Append_Location (Response.result, Definition);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>      end Resolve_In_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      for C of Self.Contexts_For_URI (Position.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Resolve_In_Context (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Type_Definition_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_DidChangeTextDocument_Notification --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure On_DidChangeTextDocument_Notification
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self  : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Value : LSP.Messages.DidChangeTextDocumentParams)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      function Skip_Did_Change return Boolean;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada punctuation.ada
>      --  Check if the following message in the queue is didChange for
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  the same document
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- Skip_Did_Change --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      function Skip_Did_Change return Boolean is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>         use type LSP.Servers.Message_Access;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada keyword.other.using.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada keyword.modifier.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.type.ada punctuation.ada
>
>         subtype DidChangeTextDocument_Notification is LSP.Messages
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada keyword.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada
#                 ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada keyword.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada
#                                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
>           .Server_Notifications.DidChangeTextDocument_Notification;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                   ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.subtype.ada punctuation.ada
>
>         Next : constant LSP.Servers.Message_Access :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>           Self.Server.Look_Ahead_Message;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
>         if Next = null
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada constant.language.ada
>           or else Next.all not in
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
>             DidChangeTextDocument_Notification'Class
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.attribute.ada punctuation.ada
#                                                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.attribute.ada entity.other.attribute-name.ada
>         then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>            return False;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada keyword.ada
>            Object : DidChangeTextDocument_Notification'Class renames
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada meta.attribute.ada punctuation.ada
#                                                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.ada
>              DidChangeTextDocument_Notification'Class (Next.all);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada keyword.ada
>            if Object.params.textDocument.uri /= Value.textDocument.uri then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.relational.ada
#                                                ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               return False;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.block.ada punctuation.ada
>
>         return True;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>      end Skip_Did_Change;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada punctuation.ada
>
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Diag     : LSP.Messages.PublishDiagnosticsParams;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Diags_Already_Published : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      if Allow_Incremental_Text_Changes.Active then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  If we are applying incremental changes, we can't skip the
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  call to Apply_Changes, since this would break synchronization.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         Document.Apply_Changes
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           (Value.textDocument.version,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            Value.contentChanges);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>         --  However, we should skip the Indexing part if the next change in
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  the queue will re-change the text document.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         if Skip_Did_Change then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  If we are not applying incremental changes, we can skip
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  Apply_Changes: the next change will contain the full text.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         if Skip_Did_Change then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>         Document.Apply_Changes
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           (Value.textDocument.version,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            Value.contentChanges);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Reindex the document in each of the contexts where it is relevant
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      for Context of Self.Contexts_For_URI (Value.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Context.Index_Document (Document.all);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                 ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         --  Emit diagnostics - do this for only one context
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada comment.line.double-dash.ada
>         if Self.Diagnostics_Enabled
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
>           and then not Diags_Already_Published
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
>         then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>            Document.Get_Errors (Context.all, Diag.diagnostics);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                             ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            Diag.uri := Value.textDocument.uri;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            Self.Server.On_Publish_Diagnostics (Diag);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            Diags_Already_Published := True;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>   end On_DidChangeTextDocument_Notification;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_DidCloseTextDocument_Notification --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure On_DidCloseTextDocument_Notification
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self  : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Value : LSP.Messages.DidCloseTextDocumentParams)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      Diag     : LSP.Messages.PublishDiagnosticsParams;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Document : Internal_Document_Access;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      if Self.Open_Documents.Contains (Value.textDocument.uri) then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                       ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Document := Self.Open_Documents.Element (Value.textDocument.uri);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                  ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         Unchecked_Free (Document);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>         Self.Open_Documents.Delete (Value.textDocument.uri);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  We have received a didCloseTextDocument but the document was
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  not open: this is not supposed to happen, log it.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>
>         Self.Trace.Trace
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("received a didCloseTextDocument for non-open document with uri: "
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
>            & To_UTF_8_String (Value.textDocument.uri));
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada keyword.operator.adding.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada constant.numeric.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                               ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Clean diagnostics up on closing document
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      if Self.Diagnostics_Enabled then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Diag.uri := Value.textDocument.uri;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         Self.Server.On_Publish_Diagnostics (Diag);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>   end On_DidCloseTextDocument_Notification;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   -----------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_DidOpenTextDocument_Notification --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure On_DidOpenTextDocument_Notification
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self  : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Value : LSP.Messages.DidOpenTextDocumentParams)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      URI    : LSP.Messages.DocumentUri renames Value.textDocument.uri;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.ada
#                                               ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Object : constant Internal_Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>        new LSP.Ada_Documents.Document (Self.Trace);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      Self.Trace.Trace ("In Text_Document_Did_Open");
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Trace.Trace ("Uri : " & To_UTF_8_String (URI));
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada constant.numeric.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Some clients don't properly call initialize, or don't pass the
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  project to didChangeConfiguration: fallback here on loading a
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  project in this directory, if needed.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Ensure_Project_Loaded
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>        (Self,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         To_LSP_String (Ada.Directories.Containing_Directory
#^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
>           (To_UTF_8_String (URI_To_File (URI)))));
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada constant.numeric.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  We have received a document: add it to the documents container
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Object.Initialize (URI, Value.textDocument.text);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Open_Documents.Insert (URI, Object);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Handle the case where we're loading the implicit project: do
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  we need to add the directory in which the document is open?
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      if Self.Implicit_Project_Loaded then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            Dir : constant Virtual_File := To_File (URI).Dir;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                          ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            if not Self.Project_Dirs_Loaded.Contains (Dir) then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               --  We do need to add this directory
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada comment.line.double-dash.ada
>               Self.Project_Dirs_Loaded.Insert (Dir);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               Self.Reload_Implicit_Project_Dirs;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Index the document in all the contexts where it is relevant
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      declare
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>         Diag : LSP.Messages.PublishDiagnosticsParams;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         Diags_Already_Published : Boolean := False;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>         for Context of Self.Contexts_For_URI (URI) loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
#                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>            Context.Index_Document (Object.all);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>            if Self.Diagnostics_Enabled
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
>              and then not Diags_Already_Published
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                          ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
>            then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>               Object.Get_Errors (Context.all, Diag.diagnostics);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               Diag.uri := Value.textDocument.uri;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                          ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>               Self.Server.On_Publish_Diagnostics (Diag);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>               --  Publish diagnostics only for one context,
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada comment.line.double-dash.ada
>               --  to avoid emitting too much noise.
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada comment.line.double-dash.ada
>               Diags_Already_Published := True;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>      end;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.block.ada punctuation.ada
>
>      Self.Trace.Trace ("Finished Text_Document_Did_Open");
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end On_DidOpenTextDocument_Notification;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Folding_Range_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Folding_Range_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Folding_Range_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.FoldingRange_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      Value : LSP.Messages.FoldingRangeParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Context  : constant Context_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Self.Contexts.Get_Best_Context (Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                        ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Result   : LSP.Messages.FoldingRange_Vector;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      if Document /= null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada constant.language.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Document.Get_Folding_Blocks
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           (Context.all, Self.Line_Folding_Only, Result);
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>         return Response : LSP.Messages.Server_Responses.FoldingRange_Response
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada entity.name.type.ada
>           (Is_Error => False)
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.other.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         do
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
>            Response.result := Result;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.operator.new.ada
#                              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
>         end return;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return Response : LSP.Messages.Server_Responses.FoldingRange_Response
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada entity.name.type.ada
>           (Is_Error => True)
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.other.ada
#                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         do
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
>            Response.error :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada variable.name.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.operator.new.ada
>              (True,
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
>               (code => LSP.Errors.InternalError,
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
#                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.other.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
>                message => +"Document is not opened",
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.other.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada string.quoted.double.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
>                data => <>));
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.other.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada meta.statement.assignment.ada punctuation.ada
>         end return;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>   end On_Folding_Range_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   --------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Selection_Range_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Selection_Range_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Selection_Range_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.SelectionRange_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.SelectionRange_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Selection_Range_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   --------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Highlight_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Highlight_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Highlight_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Highlight_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.Highlight_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Highlight_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Hover_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Hover_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Hover_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Hover_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Value    : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.Hover_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Defining_Name_Node : Defining_Name;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Decl               : Basic_Decl;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Decl_Text          : LSP_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Comments_Text      : LSP_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Location_Text      : LSP_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Decl_Unit_File     : Virtual_File;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      C : constant Context_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Self.Contexts.Get_Best_Context (Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                        ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      --  For the Hover request, we're only interested in the "best"
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  response value, not in the list of values for all contexts
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Self.Imprecise_Resolve_Name (C, Value, Defining_Name_Node);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                            ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      if Defining_Name_Node = No_Defining_Name then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                             ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Get the associated basic declaration
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      Decl := Defining_Name_Node.P_Basic_Decl;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      if Decl = No_Basic_Decl or else Request.Canceled then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                                     ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  If the basic declaration is an enum literal, display the whole
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  enumeration type declaration instead.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      if Decl.Kind in Ada_Enum_Literal_Decl then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Decl := As_Enum_Literal_Decl (Decl).P_Enum_Type.As_Basic_Decl;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         Decl_Text := Get_Hover_Text (Decl);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Decl_Text := Get_Hover_Text (Decl);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      if Decl_Text = Empty_LSP_String then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Append the whole declaration text to the response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>
>      Response.result.contents.Vector.Append
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
>        (LSP.Messages.MarkedString'
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
>           (Is_String => False,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>            value     => Decl_Text,
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>            language  => +"ada"));
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.operator.adding.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada string.quoted.double.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Append the declaration's location.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  In addition, append the project's name if we are dealing with an
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  aggregate project.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>
>      Decl_Unit_File := GNATCOLL.VFS.Create (+Decl.Unit.Get_Filename);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                              ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      Location_Text := To_LSP_String
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>        ("at " & Decl_Unit_File.Display_Base_Name & " ("
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
>         & GNATCOLL.Utils.Image
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#          ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>           (Integer (Decl.Sloc_Range.Start_Line), Min_Width => 1)
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada constant.numeric.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         & ":"
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
>         & GNATCOLL.Utils.Image
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#          ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>           (Integer (Decl.Sloc_Range.Start_Column), Min_Width => 1)
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada constant.numeric.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         & ")");
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      if Self.Project_Tree.Root_Project.Is_Aggregate_Project then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Location_Text := Location_Text & " in project " & C.Id;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Response.result.contents.Vector.Append
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
>        (LSP.Messages.MarkedString'
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
>           (Is_String => True,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>            value     => Location_Text));
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                        ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Append the comments associated with the basic declaration
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  if any.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>
>      Comments_Text := To_LSP_String
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>        (Ada.Strings.UTF_Encoding.Wide_Wide_Strings.Encode
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>           (Libadalang.Doc_Utils.Get_Documentation
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
>                (Decl).Doc.To_String));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>
>      if Comments_Text /= Empty_LSP_String then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.result.contents.Vector.Append
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           (LSP.Messages.MarkedString'
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
>              (Is_String => True,
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada keyword.other.ada
#                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               value     => Comments_Text));
#^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada keyword.other.ada
#                           ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Hover_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_References_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_References_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.References_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Location_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Value      : LSP.Messages.ReferenceParams renames Request.params;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
#                                                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response   : LSP.Messages.Server_Responses.Location_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Imprecise  : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Process_Context (C : Context_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Process the references found in one context and append
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  them to Response.results.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Get_Reference_Kind
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
>        (Node : Ada_Node) return LSP.Messages.AlsReferenceKind_Set;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>      --  Fetch reference kind for given node
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Is_End_Label (Node : Ada_Node) return Boolean
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>        (not Node.Parent.Is_Null
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>         and then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>           (Node.Parent.Kind in Ada_End_Name
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>            or else (Node.Parent.Kind in Ada_Dotted_Name
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                                        ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>                     and then not Node.Parent.Parent.Is_Null
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.operator.highest-precedence.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>                     and then Node.Parent.Parent.Kind in Ada_End_Name)));
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                                                        ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>      --  Return True if the node belongs to an end label node.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  Used to filter out end label references.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Is_Type_Derivation (Node : Ada_Node) return Boolean
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>        (not Node.Parent.Is_Null
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>         and then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>           (Node.Parent.Kind in Ada_Subtype_Indication_Range
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>            and then not Node.Parent.Parent.Is_Null
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.operator.highest-precedence.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
>            and then Node.Parent.Parent.Kind in Ada_Derived_Type_Def_Range));
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
#                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada punctuation.ada
#                                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>      --  Return True if the node belongs to derived type declaration.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Get_Reference_Kind --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Get_Reference_Kind
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
>        (Node : Ada_Node) return LSP.Messages.AlsReferenceKind_Set
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>         use LSP.Messages;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>         Id     : constant Name := LSP.Lal_Utils.Get_Node_As_Name (Node);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>         Result : LSP.Messages.AlsReferenceKind_Set := LSP.Messages.Empty_Set;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>            Result.As_Flags (LSP.Messages.Write) := Id.P_Is_Write_Reference;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         exception
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
>            when E : Libadalang.Common.Property_Error =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada entity.name.exception.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.other.ada
>               Log (Self.Trace, E);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>            Result.As_Flags (LSP.Messages.Static_Call) := Id.P_Is_Static_Call;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                                         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         exception
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
>            when E : Libadalang.Common.Property_Error =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada entity.name.exception.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.other.ada
>               Log (Self.Trace, E);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>            Result.As_Flags (LSP.Messages.Dispatching_Call) :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>              Id.P_Is_Dispatching_Call;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         exception
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
>            when E : Libadalang.Common.Property_Error =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada entity.name.exception.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.other.ada
>               Log (Self.Trace, E);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>            Result.As_Flags (LSP.Messages.Child) :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>              Is_Type_Derivation (Id.As_Ada_Node);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                  ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         exception
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
>            when E : Libadalang.Common.Property_Error =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada entity.name.exception.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.other.ada
>               Log (Self.Trace, E);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>         --  If the result has not any set flags at this point, flag it as a
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>         --  simple reference.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>         if Result.As_Flags = AlsReferenceKind_Array'(others => False) then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.other.ada
#                                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>            Result.As_Flags (LSP.Messages.Simple) := True;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>         return Result;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.return.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>      end Get_Reference_Kind;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Process_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Process_Context (C : Context_Access) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Definition : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Self.Imprecise_Resolve_Name (C, Value, Definition);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>         if Definition = No_Defining_Name or else Request.Canceled then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                                 ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>            Count          : Cancel_Countdown := 0;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                 ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            This_Imprecise : Boolean;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            References     : constant Base_Id_Array :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>              C.Find_All_References (Definition, This_Imprecise);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>            Imprecise := Imprecise or This_Imprecise;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada keyword.ada
#                                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>
>            for Node of References loop
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>               if not Is_End_Label (Node.As_Ada_Node) then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                     ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                                    ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>                  Count := Count - 1;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada constant.numeric.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>                  Append_Location
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>                    (Response.result,
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                     Node,
#^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                     Get_Reference_Kind (Node.As_Ada_Node));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>
>               exit when Count = 0  and then Request.Canceled;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.operator.relational.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada constant.numeric.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.ada
#                                            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>            end loop;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>
>            if Value.context.includeDeclaration then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               Append_Location
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>                 (Response.result,
#^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                  Definition,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                  Get_Reference_Kind (Definition.As_Ada_Node));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada punctuation.ada
>      end Process_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      for C of Self.Contexts_For_URI (Value.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Process_Context (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      if Imprecise then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Show_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("The results of 'references' are approximate.",
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            LSP.Messages.Warning);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Sort_And_Remove_Duplicates (Response.result);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_References_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_ALS_Called_By_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_ALS_Called_By_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.ALS_Called_By_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.ALS_Called_By_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Value      : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response   : LSP.Messages.Server_Responses.ALS_Called_By_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Imprecise  : Boolean := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      function Get_Reference_Kind
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
>        (Node : Name) return LSP.Messages.AlsReferenceKind_Set;
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>      --  Query whether Node is a static or a dispatching call, and format
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  this into an AlsReferenceKind_Set.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Process_Context (C : Context_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Process the calls found in one context and append
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  them to Response.results.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Add_Subprogram
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Subp : LSP.Messages.ALS_Subprogram_And_References);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Add a subprogram in results, it prevents having duplicates
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Get_Reference_Kind --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      function Get_Reference_Kind
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#               ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
>        (Node : Name) return LSP.Messages.AlsReferenceKind_Set
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.type.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>         Result : LSP.Messages.AlsReferenceKind_Set := LSP.Messages.Empty_Set;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
>            Result.As_Flags (LSP.Messages.Static_Call) :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>              Node.P_Is_Static_Call;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>            Result.As_Flags (LSP.Messages.Dispatching_Call) :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>              Node.P_Is_Dispatching_Call;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         exception
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
>            when E : Libadalang.Common.Property_Error =>
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada punctuation.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada entity.name.exception.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada keyword.other.ada
>               Log (Self.Trace, E);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.handler.exception.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>         return Result;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.return.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>      end Get_Reference_Kind;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada
#          ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.function.body.ada punctuation.ada
>
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Process_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Process_Context (C : Context_Access) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Definition : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Self.Imprecise_Resolve_Name (C, Value, Definition);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>         --  Attempt to resolve the name, return no results if we can't or if
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  the name does not resolve to a callable object, like a subprogram
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  or an entry.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         if Definition = No_Defining_Name
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
>           or else not Definition.P_Basic_Decl.P_Is_Subprogram
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
>           or else Request.Canceled
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                  ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
>         then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>            This_Imprecise : Boolean;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            Called  : constant LSP.Lal_Utils.References_By_Subprogram.Map :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>              LSP.Lal_Utils.Find_All_Calls (C.all, Definition, This_Imprecise);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                  ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                              ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>
>            use LSP.Lal_Utils.References_By_Subprogram;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.context.use.package.ada keyword.other.using.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.context.use.package.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.context.use.package.ada entity.name.package.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.context.use.package.ada punctuation.ada
>            C     : Cursor := Called.First;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                             ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>            Imprecise := Imprecise or This_Imprecise;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada keyword.ada
#                                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>
>            --  Iterate through all the results, converting them to protocol
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada comment.line.double-dash.ada
>            --  objects.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada comment.line.double-dash.ada
>            while Has_Element (C) loop
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#                 ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
>               declare
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada keyword.ada
>                  Node : constant Defining_Name := Key (C);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                  Refs : constant LSP.Lal_Utils.References_List.List :=
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                    Element (C);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                  Subp_And_Refs : LSP.Messages.ALS_Subprogram_And_References;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               begin
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada keyword.ada
>                  Subp_And_Refs.loc := Get_Node_Location (Ada_Node (Node));
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                      ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>                  Subp_And_Refs.name := To_LSP_String
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
>                    (Langkit_Support.Text.To_UTF8 (Node.Text));
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada constant.numeric.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>
>                  for Ref of Refs loop
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>                     Append_Location (Subp_And_Refs.refs, Ref,
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>                                      Get_Reference_Kind (Ref.As_Name));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                          ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>                     if Request.Canceled then
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                       ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>                        return;
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>                     end if;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>                  end loop;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>                  Add_Subprogram (Subp_And_Refs);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                  ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                  Next (C);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>               end;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada meta.statement.block.ada punctuation.ada
>            end loop;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada punctuation.ada
>      end Process_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      --------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Add_Subprogram --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Add_Subprogram
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Subp : LSP.Messages.ALS_Subprogram_And_References)
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         use LSP.Messages;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.context.use.package.ada keyword.other.using.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.context.use.package.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.context.use.package.ada entity.name.package.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.context.use.package.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         for Cur of Response.result loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>            if Cur.loc = Subp.loc and then Cur.name = Subp.name then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.ada
#                                          ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.relational.ada
#                                                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>               Cur.refs.Append (Subp.refs);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               return;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>         Response.result.Append (Subp);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      end Add_Subprogram;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      --  Find the references in all contexts
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      for C of Self.Contexts_For_URI (Value.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Process_Context (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      if Imprecise then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Show_Message
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>           ("The results of 'called by' are approximate.",
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>            LSP.Messages.Warning);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      for Loc of Response.result loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#                ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Sort_And_Remove_Duplicates (Loc.refs);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_ALS_Called_By_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   --------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_ALS_Debug_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_ALS_Debug_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.ALS_Debug_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.ALS_Debug_Response is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      case Request.params.Kind is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
#          ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
>         when LSP.Messages.Suspend_Execution =>
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>            declare
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
>               Limit : constant LSP_Number := Request.params.inputQueueLength;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            begin
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
>               while Self.Server.Input_Queue_Length < Integer (Limit) loop
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.operator.relational.ada
#                                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
#                                                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                                                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
>                  delay 0.1;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada constant.numeric.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada constant.numeric.ada punctuation.radix-point.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada constant.numeric.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
>               end loop;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada keyword.control.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.while.ada punctuation.ada
>            end;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada punctuation.ada
>      end case;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.case.ada punctuation.ada
>
>      return Response : LSP.Messages.Server_Responses.ALS_Debug_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_ALS_Debug_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Signature_Help_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Signature_Help_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Signature_Help_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.SignatureHelp_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.SignatureHelp_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Signature_Help_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -----------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Color_Presentation_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Color_Presentation_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Color_Presentation_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.ColorPresentation_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.ColorPresentation_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Color_Presentation_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Document_Color_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Document_Color_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Document_Color_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.DocumentColor_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.DocumentColor_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Document_Color_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Document_Links_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Document_Links_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Document_Links_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Links_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.Links_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Document_Links_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ---------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Document_Symbols_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Document_Symbols_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Document_Symbols_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Symbol_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      --  The list of symbols for one document shouldn't depend
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  on the project: we can just choose the best context for this.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      Value    : LSP.Messages.DocumentSymbolParams renames Request.params;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
#                                                          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Value.textDocument.uri, Force => False);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                                                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Context  : constant Context_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Self.Contexts.Get_Best_Context (Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                        ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Result   : LSP.Messages.Server_Responses.Symbol_Response :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        (Is_Error => False,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>         result   => <>,
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.relational.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.relational.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>         error    => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>         others   => <>);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.relational.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.relational.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      if Document = null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada constant.language.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            Document : LSP.Ada_Documents.Document_Access :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>              Get_Open_Document (Self, Value.textDocument.uri, Force => True);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                                                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            Self.Get_Symbols (Document.all, Context.all, Result.result);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                        ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>            Unchecked_Free (Internal_Document_Access (Document));
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                            ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>      else
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Get_Symbols (Document.all, Context.all, Result.result);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                        ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                     ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>      return Result;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Document_Symbols_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Rename_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Rename_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Rename_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Rename_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      use Libadalang.Analysis;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>      Value     : LSP.Messages.RenameParams renames Request.params;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
#                                                   ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response  : LSP.Messages.Server_Responses.Rename_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      Document  : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>                   Get_Open_Document (Self, Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Process_Context (C : Context_Access);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Process the rename request for the given context, and add
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  the results to response.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      -- Process_Context --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada entity.name.section.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      ---------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>
>      procedure Process_Context (C : Context_Access) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         Position : constant LSP.Messages.TextDocumentPositionParams :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>                      (Value.textDocument, Value.position);
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>         Name_Node  : constant Name := LSP.Lal_Utils.Get_Node_As_Name
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>           (C.Get_Node_At (Document, Position));
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>         Definition : Defining_Name;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>         Imprecise  : Boolean;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>         Empty      : LSP.Messages.TextEdit_Vector;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>         procedure Process_Comments
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                   ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>           (Node : Ada_Node;
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>            Uri  : LSP.Messages.DocumentUri);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>         --  Iterate over all comments and include them in the response when
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  they contain a renamed word
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         -----------------------
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  Process_Comments --
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#             ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         -----------------------
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>         procedure Process_Comments
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                   ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>           (Node : Ada_Node;
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>            Uri  : LSP.Messages.DocumentUri)
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>         is
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>            Token     : Token_Reference := First_Token (Node.Unit);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                 ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                          ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                        ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Name      : constant Wide_Wide_String :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>              Ada.Strings.Wide_Wide_Unbounded.To_Wide_Wide_String
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
>                (Get_Last_Name (Name_Node));
#^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                 ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Text_Edit : LSP.Messages.TextEdit;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Span      : LSP.Messages.Span;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Current   : Token_Reference;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>            Diff      : Integer;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>            Box_Line : constant Wide_String (1 .. 80) := (others => '-');
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.other.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.single.ada punctuation.definition.string.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.single.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.single.ada punctuation.definition.string.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>            function Process_Box return Boolean;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                     ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada punctuation.ada
>            --  Check whether Current is box header/footer and modify it.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            --  Return False when the searching cycle should be stopped.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>            -----------------
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            -- Process_Box --
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>            -----------------
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>            function Process_Box return Boolean is
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                     ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>               use Langkit_Support.Text;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#                   ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>               use Langkit_Support.Slocs;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada keyword.other.using.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada
#                   ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada entity.name.package.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.context.use.package.ada punctuation.ada
>
>            begin
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
>               if Current = No_Token then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                           ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>                  return False;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>               case Kind (Data (Current)) is
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada punctuation.ada
#                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
>                  when Ada_Whitespace =>
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                     return True;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.return.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>
>                  when Ada_Comment =>
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                     declare
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
>                        Value : constant Text_Type := Text (Current);
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                     begin
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
>                        for Idx in Value'Range loop
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.attribute.ada punctuation.ada
#                                         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.attribute.ada entity.other.attribute-name.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>                           if Value (Idx) /= '-' then
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.relational.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada string.quoted.single.ada punctuation.definition.string.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada string.quoted.single.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada string.quoted.single.ada punctuation.definition.string.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>                              return False;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>                           end if;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>                        end loop;
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>
>                        if Diff > 0 then
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.relational.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada constant.numeric.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>                           --  Increase '-', Diff is positive
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada comment.line.double-dash.ada
>                           declare
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>                              Sloc : constant Source_Location_Range :=
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                                Sloc_Range (Data (Current));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>
>                              Line  : constant LSP.Types.Line_Number :=
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                                LSP.Types.Line_Number (Sloc.Start_Line) - 1;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.adding.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                              Start : constant UTF_16_Index := UTF_16_Index
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
>                                (Sloc.End_Column - 1);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                 ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.adding.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                           begin
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>                              Response.result.changes (Uri).Append
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                (LSP.Messages.TextEdit'
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                   (span =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
>                                        (first => (Line, Start),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                                         last  => (Line, Start)),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                                    newText =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
>                                      LSP.Types.To_Unbounded_Wide_String
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                        (Box_Line (1 .. Diff))));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                         ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada constant.numeric.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.ada
#                                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                           end;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>
>                        else
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>                           --  Decrease '-', Diff is negative
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada comment.line.double-dash.ada
>                           declare
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>                              Sloc : constant Source_Location_Range :=
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                                Sloc_Range (Data (Current));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>
>                              Line  : constant LSP.Types.Line_Number :=
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                                LSP.Types.Line_Number (Sloc.Start_Line) - 1;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.adding.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                              Last : constant UTF_16_Index := UTF_16_Index
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
>                                (Sloc.End_Column - 1);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                 ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.adding.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                           begin
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>                              Response.result.changes (Uri).Append
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                (LSP.Messages.TextEdit'
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                 ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                   (span =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
>                                        (first =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
>                                             (Line, Last - UTF_16_Index
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.operator.adding.ada
#                                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada constant.numeric.ada
#                                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                                (abs Diff)),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.operator.highest-precedence.ada
#                                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                                         last  =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
>                                           (Line, Last)),
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                 ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                                    newText =>
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada keyword.other.ada
>                                      LSP.Types.To_Unbounded_Wide_String
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
>                                        ("")));
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>                           end;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>                        end if;
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>
>                        return False;
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.return.ada keyword.control.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.return.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada meta.statement.return.ada punctuation.ada
>                     end;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada keyword.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.block.ada punctuation.ada
>
>                  when others =>
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.control.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada keyword.modifier.unknown.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.case.alternative.ada punctuation.ada
>                     return False;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.return.ada keyword.control.ada
#                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.return.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada meta.statement.return.ada punctuation.ada
>               end case;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada keyword.control.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada meta.statement.case.ada punctuation.ada
>            end Process_Box;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada
#                ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.function.body.ada punctuation.ada
>
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>            Diff := Length (Value.newName) - Name'Length;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                            ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada meta.attribute.ada punctuation.ada
#                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>            while Token /= No_Token loop
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
#                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.operator.multiplying.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.operator.relational.ada
#                          ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
>               if Kind (Data (Token)) = Ada_Comment
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.control.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.operator.relational.ada
#                                       ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
>                 and then Contains (Token, Name, True, Text_Edit.span)
#^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.ada
#                         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                                                ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
#                                                      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
>               then
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.control.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.control.ada
>                  Text_Edit.newText := Value.newName;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.assignment.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>                  if Diff /= 0
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.multiplying.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada constant.numeric.ada
>                    and then Contains
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.ada
#                            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
>                      (Token, "-- " & Name & " --", False, Span)
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.adding.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.adding.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>                  then
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>                     --  Can be a comment box
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>                     Current := Previous (Token);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>                     loop
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada keyword.control.ada
>                        --  Looking for the box header
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada comment.line.double-dash.ada
>                        exit when not Process_Box;
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada keyword.control.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada keyword.control.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada keyword.operator.highest-precedence.ada
#                                     ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada punctuation.ada
>                        Current := Previous (Current);
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada variable.name.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
>                     end loop;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada keyword.control.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada punctuation.ada
>
>                     --  Include corrected comment itself
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>                     Response.result.changes (Uri).Append (Text_Edit);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>                     Current := Next (Token);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>                     loop
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada keyword.control.ada
>                        --  Looking for the box footer
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada comment.line.double-dash.ada
>                        exit when not Process_Box;
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada keyword.control.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada keyword.control.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada keyword.operator.highest-precedence.ada
#                                     ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.exit.ada punctuation.ada
>                        Current := Next (Current);
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada variable.name.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada meta.statement.assignment.ada punctuation.ada
>                     end loop;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada keyword.control.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.loop.ada punctuation.ada
>
>                  else
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>                     Response.result.changes (Uri).Append (Text_Edit);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                  end if;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>               end if;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.if.ada punctuation.ada
>
>               Token := Next (Token);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada keyword.operator.new.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada punctuation.ada
#                              ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada meta.statement.assignment.ada punctuation.ada
>            end loop;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.loop.while.ada punctuation.ada
>         end Process_Comments;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
>         if Name_Node = No_Name then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         Definition := LSP.Lal_Utils.Resolve_Name
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
>           (Name_Node,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>            Self.Trace,
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>            Imprecise => Imprecise);
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>         --  If we used the imprecise fallback to get to the definition, stop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         if Imprecise then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         if Definition = No_Defining_Name or Request.Canceled then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            return;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>            Count      : Cancel_Countdown := 0;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            References : constant Base_Id_Array :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                           C.Get_References_For_Renaming
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
>                             (Definition,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                              ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                              Imprecise_Results => Imprecise);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
>            if Imprecise then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               Self.Show_Message
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
>                 ("References are not precise: renamed cancelled",
#^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                  LSP.Messages.Warning);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               return;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>
>            for Node of References loop
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>               declare
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada keyword.ada
>                  Location : constant LSP.Messages.Location :=
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                    Get_Node_Location (Node => Node.As_Ada_Node);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                       ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                                              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                  Item : constant LSP.Messages.TextEdit :=
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                    (span    => Location.span,
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>                     newText => Value.newName);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada keyword.other.ada
#                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>               begin
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada keyword.ada
>                  if not Response.result.changes.Contains (Location.uri) then
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                                           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>                     --  We haven't touched this document yet, create an empty
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada comment.line.double-dash.ada
>                     --  change list
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada comment.line.double-dash.ada
>                     Response.result.changes.Insert (Location.uri, Empty);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                     ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>
>                     --  Process comments if it is needed
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada comment.line.double-dash.ada
>                     if Self.Refactoring.Renaming.In_Comments then
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>                        Process_Comments (Node.As_Ada_Node, Location.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada
#                        ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                          ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                     end if;
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>                  end if;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>
>                  --  When iterating over all contexts (and therefore all
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada comment.line.double-dash.ada
>                  --  projects), it's possible to encounter the same
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada comment.line.double-dash.ada
>                  --  definitions more than once, so verify that the result
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada comment.line.double-dash.ada
>                  --  is not already recorded before adding it.
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada comment.line.double-dash.ada
>                  if not Response.result.changes
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
>                    (Location.uri).Contains (Item)
#^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                     ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                  ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>                  then
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>                     Response.result.changes (Location.uri).Append (Item);
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                     ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>                  end if;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>
>                  exit when Count = 0 and then Request.Canceled;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada keyword.control.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada
#                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada keyword.control.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada keyword.operator.relational.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada constant.numeric.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada
#                                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada keyword.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada keyword.ada
#                                              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.exit.ada punctuation.ada
>
>                  Count := Count - 1;
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.new.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada constant.numeric.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada meta.statement.assignment.ada punctuation.ada
>               end;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada keyword.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.block.ada punctuation.ada
>            end loop;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada meta.statement.block.ada punctuation.ada
>      end Process_Context;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      for C of Self.Contexts_For_URI (Value.textDocument.uri) loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
>         Process_Context (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>
>         exit when Request.Canceled;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada keyword.control.ada
#                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada meta.statement.exit.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.loop.for.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Rename_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   --------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_DidChangeConfiguration_Notification --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   --------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure On_DidChangeConfiguration_Notification
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self  : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                     ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Value : LSP.Messages.DidChangeConfigurationParams)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      use type GNATCOLL.JSON.JSON_Value_Type;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada keyword.modifier.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada
#               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada punctuation.ada
>
>      projectFile            : constant String := "projectFile";
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                 ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      scenarioVariables      : constant String := "scenarioVariables";
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      defaultCharset         : constant String := "defaultCharset";
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      enableDiagnostics      : constant String := "enableDiagnostics";
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                       ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      enableIndexing         : constant String := "enableIndexing";
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      renameInComments       : constant String := "renameInComments";
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>      Ada       : constant LSP.Types.LSP_Any := Value.settings.Get ("ada");
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                               ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                     ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      File      : LSP.Types.LSP_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Charset   : Unbounded_String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Variables : LSP.Types.LSP_Any;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                  ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      if Ada.Kind = GNATCOLL.JSON.JSON_Object_Type then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         if Ada.Has_Field (projectFile) then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            File := +Ada.Get (projectFile).Get;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>
>            --  Drop uri scheme if present
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada comment.line.double-dash.ada
>            if LSP.Types.Starts_With (File, "file:") then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>               File := URI_To_File (File);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>
>         if Ada.Has_Field (scenarioVariables) and then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.ada
>           Ada.Get (scenarioVariables).Kind  = GNATCOLL.JSON.JSON_Object_Type
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.operator.relational.ada
#                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
>         then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            Variables := Ada.Get (scenarioVariables);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                  ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>
>         if Ada.Has_Field (defaultCharset) then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                           ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            Charset := Ada.Get (defaultCharset);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>
>         --  It looks like the protocol does not allow clients to say whether
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  or not they want diagnostics as part of
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  InitializeParams.capabilities.textDocument. So we support
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  deactivating of diagnostics via a setting here.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         if Ada.Has_Field (enableDiagnostics) then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            Self.Diagnostics_Enabled := Ada.Get (enableDiagnostics);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>
>         --  Similarly to diagnostics, we support selectively activating
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  indexing in the parameters to this request.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         if Ada.Has_Field (enableIndexing) then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                           ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            Self.Indexing_Enabled := Ada.Get (enableIndexing);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                    ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>
>         --  Retrieve the different textDocument/rename options if specified
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>
>         if Ada.Has_Field (renameInComments) then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                           ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
>            Self.Refactoring.Renaming.In_Comments :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
>              Ada.Get (renameInComments);
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                       ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.if.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      if File /= Empty_LSP_String then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.multiplying.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         --  The projectFile may be either an absolute path or a
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  relative path; if so, we're assuming it's relative
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         --  to Self.Root.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada comment.line.double-dash.ada
>         declare
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            Project_File : constant Filesystem_String :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada storage.modifier.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>              +To_UTF_8_String (File);
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.adding.ada
#               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada constant.numeric.ada
#                       ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            GPR : Virtual_File;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                  ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>         begin
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>            if Is_Absolute_Path (Project_File) then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                 ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               GPR := Create (Project_File);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                              ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            else
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
>               GPR := Create_From_Dir (Self.Root, Project_File);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                     ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                       ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.if.ada punctuation.ada
>
>            Self.Load_Project (GPR, Variables, To_String (Charset));
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                   ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                              ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>         end;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      Self.Ensure_Project_Loaded;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end On_DidChangeConfiguration_Notification;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Load_Project --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Load_Project
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self     : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      GPR      : Virtual_File;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Scenario : LSP.Types.LSP_Any;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                           ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Charset  : String)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      use GNATCOLL.Projects;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada keyword.other.using.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada
#          ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada entity.name.package.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.context.use.package.ada punctuation.ada
>      Errors        : LSP.Messages.ShowMessageParams;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Error_Text    : LSP.Types.LSP_String_Vector;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Create_Context_For_Non_Aggregate (P : Project_Type);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      procedure Add_Variable (Name : String; Value : GNATCOLL.JSON.JSON_Value);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      procedure On_Error (Text : String);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      ------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- Add_Variable --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      ------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      procedure Add_Variable
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>        (Name : String; Value : GNATCOLL.JSON.JSON_Value)
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         use type GNATCOLL.JSON.JSON_Value_Type;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada keyword.other.using.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada keyword.modifier.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada
#                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada punctuation.ada
#                                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.context.use.type.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         if Value.Kind = GNATCOLL.JSON.JSON_String_Type then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.relational.ada
#                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                        ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            Self.Project_Environment.Change_Environment (Name, Value.Get);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                              ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>      end Add_Variable;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      --------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- On_Error --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      procedure On_Error (Text : String) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         LSP.Types.Append (Error_Text, LSP.Types.To_LSP_String (Text));
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      end On_Error;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      --------------------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- Create_Context_For_Non_Aggregate --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --------------------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      procedure Create_Context_For_Non_Aggregate (P : Project_Type) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         C : constant Context_Access := new Context (Self.Trace);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                       ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                     ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         C.Initialize;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         C.Load_Project (Tree    => Self.Project_Tree,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada variable.parameter.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                                   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>                         Root    => P,
#^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada variable.parameter.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>                         Charset => Charset);
#^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada variable.parameter.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                                   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         Self.Contexts.Prepend (C);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      end Create_Context_For_Non_Aggregate;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      --  Unload all the contexts
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Contexts.Cleanup;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  Unload the project tree and the project environment
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Release_Project_Info;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      --  We're loading an actual project
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Implicit_Project_Loaded := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>
>      --  Now load the new project
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Errors.the_type := LSP.Messages.Warning;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                        ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>      Initialize (Self.Project_Environment);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      if not Scenario.Is_Empty then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Scenario.Map_JSON_Object (Add_Variable'Access);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                   ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada meta.attribute.ada punctuation.ada
#                                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>         Self.Project_Tree := new Project_Tree;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                             ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Self.Project_Tree.Load
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>           (GPR,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>            Self.Project_Environment,
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>            Errors => On_Error'Unrestricted_Access);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#            ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada variable.parameter.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada keyword.other.ada
#                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada meta.attribute.ada punctuation.ada
#                               ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada meta.attribute.ada entity.other.attribute-name.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         for File of Self.Project_Environment.Predefined_Source_Files loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>            Self.Project_Predefined_Sources.Include (File);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>         if Self.Project_Tree.Root_Project.Is_Aggregate_Project then
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            declare
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>               Aggregated : Project_Array_Access :=
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada variable.name.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada keyword.operator.new.ada
>                 Self.Project_Tree.Root_Project.Aggregated_Projects;
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.declaration.object.ada punctuation.ada
>            begin
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
>               for X of Aggregated.all loop
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                                       ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
>                  Create_Context_For_Non_Aggregate (X);
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>               end loop;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#               ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada
#                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.loop.for.ada punctuation.ada
>               Unchecked_Free (Aggregated);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada entity.name.function.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada meta.statement.call.ada punctuation.ada
>            end;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.block.ada punctuation.ada
>         else
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>            Create_Context_For_Non_Aggregate (Self.Project_Tree.Root_Project);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>         end if;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>      exception
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada keyword.ada
>         when E : Invalid_Project =>
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada keyword.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada variable.name.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#                  ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada entity.name.exception.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada keyword.other.ada
>            Self.Release_Project_Info;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>
>            Self.Trace.Trace (E);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>            Errors.the_type := LSP.Messages.Error;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.assignment.ada keyword.operator.new.ada
#                              ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.assignment.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.assignment.ada punctuation.ada
>
>            LSP.Types.Append
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
>              (Errors.message,
#^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>               LSP.Types.To_LSP_String
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
>                 ("Unable to load project file: " &
#^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada string.quoted.double.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada keyword.operator.adding.ada
>                  (+GPR.Full_Name.all) & Line_Feed));
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada keyword.operator.adding.ada
#                    ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada keyword.operator.adding.ada
#                                        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>
>            --  The project was invalid: fallback on loading the implicit
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada comment.line.double-dash.ada
>            --  project.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada comment.line.double-dash.ada
>            Self.Load_Implicit_Project;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada entity.name.function.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada meta.statement.call.ada punctuation.ada
>      end;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.handler.exception.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      --  Report the errors, if any
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      if not Error_Text.Is_Empty then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                 ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         for Line of Error_Text loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
>            LSP.Types.Append (Errors.message, Line);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                              ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.loop.for.ada punctuation.ada
>         Self.Server.On_Show_Message (Errors);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      --  Reindex all open documents immediately after project reload, so
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  that navigation from editors is accurate.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      for Document of Self.Open_Documents loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                     ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         for Context of Self.Contexts_For_URI (Document.URI) loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada punctuation.ada
#                                               ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#                                                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
>            Context.Index_Document (Document.all);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      --  Reindex the files from disk in the background after a project reload
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Indexing_Required := True;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                               ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>   end Load_Project;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Get_Unique_Progress_Token --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                               ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   function Get_Unique_Progress_Token
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self      : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Operation : String := "") return LSP_Number_Or_String
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.operator.new.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada punctuation.definition.string.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada string.quoted.double.ada punctuation.definition.string.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>
>      Pid : constant String :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        GNATCOLL.Utils.Image (Pid_To_Integer (Current_Process_Id), 1);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                              ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada constant.numeric.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Self.Token_Id := Self.Token_Id + 1;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada constant.numeric.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      --  Generate an identifier that has little risk of collision with
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  other language servers, or other occurrences of this server.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  (There is still a very small risk of collision with PID recyclings,
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      --  but the consequences are acceptable.)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      return
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
>        (Is_Number => False,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#         ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>         String    => To_LSP_String
#^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
>           ("ada_ls-"
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada punctuation.definition.string.ada
#             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada punctuation.definition.string.ada
>            & Pid & "-" & Operation & "-"
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.adding.ada
#             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.adding.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada punctuation.definition.string.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.adding.ada
#                         ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.adding.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada string.quoted.double.ada punctuation.definition.string.ada
>            & GNATCOLL.Utils.Image (Self.Token_Id, 1)));
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.adding.ada
#             ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                    ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada constant.numeric.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end Get_Unique_Progress_Token;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   -----------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Index_Files --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                 ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Index_Files (Self : access Message_Handler) is
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      token : constant LSP.Types.LSP_Number_Or_String
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                       ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                           ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
>        := Self.Get_Unique_Progress_Token ("indexing");
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#        ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>      procedure Emit_Progress_Begin;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      procedure Emit_Progress_Report (Percent : Natural);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      procedure Emit_Progress_End;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      --  Emit a message to inform that the indexing has begun / is in
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  progress / has finished.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      -------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- Emit_Progress_Begin --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      procedure Emit_Progress_Begin is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                    ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         P : LSP.Messages.Progress_Params (LSP.Messages.Progress_Begin);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>
>         Create_Progress : constant LSP.Messages.Client_Requests
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                           ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                    ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
>           .WorkDoneProgressCreate_Request :=
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#            ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
>             (params => (token => token), others => <>);
#^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#              ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.other.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.other.ada
#                                 ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.other.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.relational.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.relational.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         Self.Server.On_WorkDoneProgress_Create_Request
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
>           (Create_Progress);
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>         --  FIXME: wait response before sending progress notifications.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  Currenctly, we just send a `window/workDoneProgress/create`
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  request and immediately after this start sending notifications.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  We could do better, send request, wait for client response and
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         --  start progress-report sending only after response.
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>         P.Begin_Param.token := token;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         P.Begin_Param.value.title := +"Indexing";
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         P.Begin_Param.value.percentage := (Is_Set => True, Value => 0);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada constant.numeric.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Self.Server.On_Progress (P);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      end Emit_Progress_Begin;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      --------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- Emit_Progress_Report --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --------------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      procedure Emit_Progress_Report (Percent : Natural) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                                ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         P : LSP.Messages.Progress_Params (LSP.Messages.Progress_Report);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         P.Report_Param.token := token;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                              ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         P.Report_Param.value.percentage :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>           (Is_Set => True, Value => LSP_Number (Percent));
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.other.ada
#                                    ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
#                                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Self.Server.On_Progress (P);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      end Emit_Progress_Report;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      -----------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -- Emit_Progress_End --
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada entity.name.section.ada
#                          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      -----------------------
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>
>      procedure Emit_Progress_End is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         P : LSP.Messages.Progress_Params (LSP.Messages.Progress_End);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      begin
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
>         P.End_Param.token := token;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>         Self.Server.On_Progress (P);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#         ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      end Emit_Progress_End;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada keyword.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada
#          ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>      Index           : Natural := 1;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Total           : constant Natural := Self.Contexts.Total_Source_Files;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#           ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada storage.modifier.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                 ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Last_Percent    : Natural := 0;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>      Current_Percent : Natural := 0;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada variable.name.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada entity.name.type.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada keyword.operator.new.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada constant.numeric.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      --  Prevent work if the indexing has been explicitly disabled or
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      --  if we have other messages to process.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      if not Self.Indexing_Enabled or Self.Server.Has_Pending_Work then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.operator.highest-precedence.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.ada
#                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                                                   ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         return;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>
>      Emit_Progress_Begin;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>
>      for Context of Self.Contexts.Each_Context loop
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#                                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
>         for F of Context.List_Files loop
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#                                     ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
>            Current_Percent := (Index * 100) / Total;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.new.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
#                                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.multiplying.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                                        ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada constant.numeric.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.multiplying.ada
#                                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
>            --  If the value of the indexing increased by at least one percent,
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada comment.line.double-dash.ada
>            --  emit one progress report.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada comment.line.double-dash.ada
>            if Current_Percent > Last_Percent then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.operator.relational.ada
#                                ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>               Emit_Progress_Report (Current_Percent);
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                     ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               Last_Percent := Current_Percent;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                              ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>
>            Context.Index_File (F);
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada entity.name.function.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.call.ada punctuation.ada
>            Index := Index + 1;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada variable.name.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.new.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada constant.numeric.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.assignment.ada punctuation.ada
>
>            --  Check whether another request is pending. If so, pause the
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada comment.line.double-dash.ada
>            --  indexing; it will be resumed later as part of After_Request.
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada comment.line.double-dash.ada
>            --  if Self.Server.Input_Queue_Length > 0 then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada comment.line.double-dash.ada
>            if Self.Server.Has_Pending_Work then
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                                            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
>               Emit_Progress_End;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>               return;
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>            end if;
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada
#                ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada keyword.control.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada meta.statement.if.ada punctuation.ada
>         end loop;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#         ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada
#             ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada keyword.control.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada meta.statement.loop.for.ada punctuation.ada
>      end loop;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada keyword.control.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.loop.for.ada punctuation.ada
>
>      Emit_Progress_End;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>      Self.Indexing_Required := False;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada variable.name.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada keyword.operator.new.ada
#                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.assignment.ada punctuation.ada
>   end Index_Files;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Workspace_Execute_Command_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                          ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Workspace_Execute_Command_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Workspace_Execute_Command_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.ExecuteCommand_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      Error    : LSP.Errors.Optional_ResponseError;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Params   : LSP.Messages.ExecuteCommandParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#            ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                   ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.ExecuteCommand_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      if Params.Is_Unknown or else Params.Custom.Is_Null then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                           ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                              ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.ada
#                                  ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.error :=
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
>           (True,
#^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#            ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>            (code => LSP.Errors.InternalError,
#^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#             ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                    ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>             message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                          ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>             data    => <>));
#^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.other.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      Params.Custom.Unchecked_Get.Execute
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
>        (Handler => Self,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Client  => Self.Server,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                   ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Error   => Error);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                 ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                   ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      if Error.Is_Set then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#                      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
>         Response.error := Error;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada variable.name.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                        ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada keyword.operator.new.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.assignment.ada punctuation.ada
>         return Response;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada keyword.control.ada
#               ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada
#                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada meta.statement.return.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.if.ada punctuation.ada
>
>      --  No particular response in case of success.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada comment.line.double-dash.ada
>      return (Is_Error => False,
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>              Error    => (Is_Set => False),
#^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>              others   => <>);
#^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                       ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.other.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.relational.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.operator.relational.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Workspace_Execute_Command_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ----------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Workspace_Symbols_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                                  ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Workspace_Symbols_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Workspace_Symbols_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Symbol_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                  ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      pragma Unreferenced (Self, Request);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
#                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.pragma.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.Symbol_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => True);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Response.error :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada variable.name.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.new.ada
>        (True,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>         (code => LSP.Errors.InternalError,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#          ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          message => +"Not implemented",
#^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.adding.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                       ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada string.quoted.double.ada punctuation.definition.string.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>          data => <>));
#^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#               ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.other.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada
#                  ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada keyword.operator.relational.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.assignment.ada punctuation.ada
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Workspace_Symbols_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- On_Completion_Request --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ---------------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding function On_Completion_Request
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada storage.visibility.ada
#              ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#                       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      Request : LSP.Messages.Server_Requests.Completion_Request)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                             ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                                                        ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.type.annotation.ada entity.name.type.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>      return LSP.Messages.Server_Responses.Completion_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                           ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
#                                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada punctuation.ada
#                                                      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.type.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada keyword.ada
>      --  We're completing only based on one context, ie one project
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  tree: this seems reasonable. One further refinement could
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  be to return only results that are available for all
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      --  project contexts.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada comment.line.double-dash.ada
>      Value    : LSP.Messages.TextDocumentPositionParams renames
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.ada
>        Request.params;
#^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Document : constant LSP.Ada_Documents.Document_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                            ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                     ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Get_Open_Document (Self, Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Context  : constant Context_Access :=
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#             ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada storage.modifier.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                  ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                         ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.operator.new.ada
>        Self.Contexts.Get_Best_Context (Value.textDocument.uri);
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                        ^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>      Response : LSP.Messages.Server_Responses.Completion_Response
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#      ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.name.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                 ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                     ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                              ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                     ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                               ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
#                                                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada punctuation.ada
#                                                          ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada entity.name.type.ada
>        (Is_Error => False);
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada variable.parameter.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                  ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada keyword.other.ada
#                    ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada meta.declaration.object.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.function.body.spec_part.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
>      Document.Get_Completions_At
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada entity.name.function.ada
>        (Context          => Context.all,
#^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#         ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#                ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                            ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Position         => Value.position,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#                 ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                            ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Snippets_Enabled => Self.Completion_Snippets_Enabled,
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>         Result           => Response.result);
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#         ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada variable.parameter.ada
#               ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                          ^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada keyword.other.ada
#                            ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada
#                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
#                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.call.ada punctuation.ada
>
>      return Response;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada keyword.control.ada
#            ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada
#                     ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada meta.statement.return.ada punctuation.ada
>   end On_Completion_Request;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada
#       ^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada entity.name.function.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.function.body.ada punctuation.ada
>
>   ------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Handle_Error --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure Handle_Error
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self : access Message_Handler) is
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                     ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      --  Reload the contexts in case of unexpected errors.
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      Self.Contexts.Reload_All_Contexts;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end Handle_Error;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Show_Message --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                  ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ------------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   procedure Show_Message
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                    ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                            ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Text : String;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Mode : LSP.Messages.MessageType := LSP.Messages.Error) is
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#             ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                 ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                          ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                                      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.operator.new.ada
#                                        ^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                                             ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      Self.Server.On_Show_Message ((Mode, To_LSP_String (Text)));
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada entity.name.function.ada
#                                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                    ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                         ^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                        ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                         ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada
#                                                             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
#                                                                ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.call.ada punctuation.ada
>   end Show_Message;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   -----------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- Before_Work --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                 ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -----------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure Before_Work
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Message : LSP.Messages.Message'Class) is null;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada punctuation.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada entity.other.attribute-name.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#                                           ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                            ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                                               ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.modifier.ada
#                                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>   ----------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   -- After_Work --
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
#      ^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada entity.name.section.ada
#                ^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>   ----------------
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada comment.line.double-dash.ada
>
>   overriding procedure After_Work
#^^^ source.ada meta.declaration.package.body.ada
#   ^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada storage.visibility.ada
#              ^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#                       ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#                        ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
>     (Self    : access Message_Handler;
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
#      ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#          ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada storage.visibility.ada
#                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                       ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                               ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>      Message : LSP.Messages.Message'Class)
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada variable.parameter.ada
#             ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#              ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada punctuation.ada
#               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada
#                ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                    ^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada punctuation.ada
#                             ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada entity.name.type.ada
#                                    ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada punctuation.ada
#                                     ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.type.annotation.ada meta.attribute.ada entity.other.attribute-name.ada
#                                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>   is
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>      pragma Unreferenced (Message);
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada keyword.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada
#             ^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada keyword.control.directive.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada
#                          ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada punctuation.ada
#                           ^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada
#                                  ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada punctuation.ada
#                                   ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.pragma.ada punctuation.ada
>   begin
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
>     --  We have finished processing a request or notification:
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>     --  if it happens that indexing is required, do it now.
#^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada comment.line.double-dash.ada
>      if Self.Indexing_Required then
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#      ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#        ^^^^^^^^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#                               ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#                                ^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
>         Self.Index_Files;
#^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#         ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada entity.name.function.ada
#                         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada meta.statement.call.ada punctuation.ada
>      end if;
#^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#      ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#         ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada
#          ^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada keyword.control.ada
#            ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada meta.statement.if.ada punctuation.ada
>   end After_Work;
#^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#   ^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada keyword.ada
#      ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada
#       ^^^^^^^^^^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada entity.name.function.ada
#                 ^ source.ada meta.declaration.package.body.ada meta.declaration.procedure.body.ada punctuation.ada
>
>end LSP.Ada_Handlers;
#^^^ source.ada meta.declaration.package.body.ada keyword.ada
#   ^ source.ada meta.declaration.package.body.ada
#    ^^^^^^^^^^^^^^^^ source.ada meta.declaration.package.body.ada entity.name.package.ada
#                    ^ source.ada meta.declaration.package.body.ada punctuation.ada
>