Use the newly added completionItem/resolve request to compute
the 'documentation' and 'detail' fieds of completion items lazily
when the client supports it (i.e: when a given item gets selected
in the completion window).
This makes the ALS way faster to return completion items for packages
that contain a huge number of declarations (e.g: Libadalang.Common).
VS Code already supports this lazy computation method but not other
clients.
Use P_All_Env_Elements and filter the returned node
to find all the function declaration with the same name.
Fix param type in the generated spec.
Add tests.
This adds support for monitoring the filesystem for changes
that might occur in project directories, outside of the IDE.
Add support for `workspace/didChangeWatchedFiles`.
Add an optional dependency on ada_libfswatch.gpr, and document
it. Add support in the travis CI builder to generate it on Linux.
Add a stub project to make the ALS useable without this dependency.
Rework the way files are indexed, to allow reindexing for any
file that might change on disk. In particular, no longer store
in LSP.Ada_Contexts a reference to the "Last_Indexed" file, which
prevented indexing of new files altogether.
A new custom request has been introduced to query the dependencies of a
given unit.
Documentation and a two tests have been added for this custom request.
Use a dedicated Unknown_Method exception. Replace if statements
in message decoders with Generic_Dispatching_Constructor and
a hash table.
Add test case for unknown request
Generate the boilerplate to support this, and implement the body.
Revisit the way we handle contexts: store the source files in an ordered
set to improve speed of lookup and memory management.