- The configured project is now automatically reloaded when adding/renaming/deleting a file in a known source directory.
- GPR .cgpr config files can now be passed to the Ada Language Server through the new
gprConfigurationFile
configuration option. - Project diagnostics are no longer published on each opened Ada file: instead, they are now published on the workspace's root directory.
- Add a setting
ada.showNotificationsOnErrors
to control whether VS Code should display error notifications for failing LSP requests. - Add support for a default
.als.json
workspace configuration file and a global$XDG_CONFIG_HOME/als/config.json
user configuration file. See settings.md for more information.
- Create commands for opening the project file and the log file
- Add editor contextual menus for some Ada commands
- Avoid 'auto-import' command when completing with-clauses
- Replace "Project Problem" diagnostic by the project status message
- Avoid running the Prove codelens with no problem matchers
- Fix Goto Definition for entry in Protected Types
- Avoid
PRECONDITION_FAILURE
on editing an empty file - Avoid occurrences of
STALE_REFERENCE_ERROR
in Libadalang - Restore the usage of
initializationOptions
from theinitialize
request to receive initial settings
- Fix the removal of old log files in the
~/.als
directory - Fix the
Ada: Go to other file
command for child packages - Fix various project loading issues after significant changes in the GPR2 project loading API
- Make sure all project issues are emitted as diagnostics
- Avoid lingering diagnostics from earlier failed loading attempts
- Treat a subclass of non-critical project issues as non-blocking for the ALS
- Add a setting
ada.projectDiagnostics
to control whether the ALS should emit project diagnostics
- Fix the
ada: Run main
task when the main executable is at the workspace root
- Implement type hierarchy requests
- Migrate the build infrastructure to ALIRE
- Migrate the VSIX publication infrastructure out of GitHub Actions
- Revamp the VS Code extension walkthrough
- Filter invisible completion items by unit prefix
- Provide SPARK CodeLenses on subprograms when gnatprove is on PATH
- Improve completion for GPR project files
- Add Alire support for GPR language
- Take into account selection for 'sort dependencies' refactoring
- Add basic support for ALIRE in VS Code tasks
- Add tasks for GNAT SAS, GNATdoc and GNATtest
- Auto-import action for invisible completion items
- Improve hover feature for GPR files
- Run
alr show
andalr printenv
in a sequence - Other bug fixes
- Load GNATtest tests in the Testing view.
- Run individual tests or subsets of tests from the Testing view.
- Display GPR errors and warnings in diagnostics
- Rework the GNATtest integration in VS Code
- Fix request traces in log files
- More requests for GPR language
- definition
- declaration
- completion
- Fix tasks based on current location
- Improve auto import suggestion
- Add all the missing workspace directories at once
- Add a 'Do not show again' button in missing dirs' popup
- Create a launch configuration for each main for attaching to a running process
- Make debug configurations have preLaunchTask fields pointing to build tasks
- Package a sourcemap file for the Ada extension
- Use case-sensitive search when renaming comments
- Handle null environment variable in vscode settings
- Implement a CodeLens provider of run and debug actions
- Mac OS Apple M1 experimental support
- Tooltips for aspects, pragmas and attributes
- GPR LS: with clauses, Case/When statements in Symbols
- GPR LS: completion request for package & attributes
- Fix extension publishing on Marketplace
- Experimental support on aarch64-linux platform
- Fix prepareCallHierarchy request
- Fix completion at the top of files
- Hover request in GPR files
- Depricate 'gnat' and 'gpr' tasks with 'ada' and 'spark'
- Create a parent node for with-clauses in documentSymbols request
- Organize settings into meaningful groups
- Show a popup to reload the window on environment changes
This is the first release using the LSP 3.17 protocol. We utilized the JSON metamodel to generate message types and interfaces for working with them. Due to significant changes in many types, a large portion of the code was rewritten. Although all our tests pass, it is possible that some errors have not yet been discovered. Nevertheless, the new protocol will enable us to implement even more new features for Ada in the future.
- Create a VS Code task to compile the current file
- Create a gdb debugging launch configuration
- Publish all diagnostics when refactorings fail
- Fix VS Code extension on Windows
- Fix 'Add subprogram box' command
- Add onTypeFormatting request initial implementation. To try edit
settings.json
with:
"[ada]": {
"editor.formatOnType": true,
},
"ada.onTypeFormatting.indentOnly": false,
- Fixes and improvements in syntax highlighting
- Do not apply semantic tokens to unresolved identifiers
- Highlight 'True' and 'False' like 'null'
- Fixes and improvements in hovers
- Basic
.gpr
language support: document symbols and diagnostics - Support more architectures and platforms in VS Code
- Change executable location to
<arch>/<platform>/
- Add
arm64
as a supported architecture - Add initialization code that checks specific combinations of architectures and platforms (e.g. arm64-darwin is supported even though it actually uses the x64-darwin executable, will use x86_64 target by default however)
- But no native ALS for
arm64
is provided for now
- Change executable location to
- Accept task bodies and packages for subprogram box command
- publish diagnostics when a refactoring fails.
- Fix highlights for obsolescent entities
- Fix formatting for simple aggregate
- Fix the build script to avoid unusable binaries on macOS
- Fix --version reporting
- Better diagnostic on errors on the project loading
- Pack debug info into separate
.debug
files in GitHub Release assets - Improvements of the SPARK support
- Clarify the message in hovers when in aggregate projects
- Add GPR tasks to build and run main subprograms
- Increasing performance of Goto_Declaration
- Use GNATdoc for all constructs.
- Improve error messages for project loading
- Substitute any variable reference when setting process.env
- Improve aspect completion
- Improve speed by simplify Is_Ada_File
- Add support for setTrace notification
- Fix the issue with Excluded_Source_Dirs #1131
- Fix the issue formatting isse #1133
- Fix the issue with typeless renaming #1138
- Fix
--config=file.json
command option - Don't call
alr
if environment has been already set - Allow extra
args
in task configurations - Use diagnostics to report renaming collisions
- Use
alr exec -- <cmd>
in tasks if there isalire.toml
file in the workspace - Allow Windows-1252 charset for
.gpr
files as fallback - Work with no GNAT in the
PATH
in Alire crates
- Initial implementaiton of Alire support.
- Use libgpr2 to handle project files
- Replace Type tool initial implementation
- Sort Dependencies tool initial implementation
- New --config option to specify a server configuration #1108
- use ms-vscode.cpptools for debugging (maybe not released yet)
- Activate snippet formatting in completion
- Dedicated command to reload the project
- Improvements in gnatpp/formatting
- Drop VS Code extension with degug information included
- Fix CONSTRAINT_ERROR if client doesn't support all semantic tokens
- Highlight gnatdoc tags
- Completion handling of unnamed params in a call
- Rename files according to naming scheme
VS code: Use per workspace environment variables VS code: Add a walkthrough ALS: Fixes for import package refactoring ALS: Fixes for range formatting ALS: Run pretty printer on completion snippets ALS: Rename files according to project's naming scheme ALS: Improve completion snippets in case of keywords ALS: Add minimal doc for parameter completion
- Make VSCode commands Ada-specific
- GNATpp partial formatting integration
- Package "Native Debug" extension with Extension Pack
- Add
subprogram box
command - Better completion for parameters
- Avoid suggesting same code action multiple times
- Display workspace popup only if workspace file
- Introduce Parameter tool initial implementation
- Add two spaces for Ada comments
- Switch build scripts to GCC 12
- Make binary releases
- Fix precedence of pretty printer options
- Turn on documentRangeFormattingProvider
- GNATpp partial formatting integration
- Rewrite parameter completion
- Use completion weight in sortText
- Fix completion for predefined types
- Add useCompletionSnippets flag
- Limit number of logs in $ALS_HOME/.als
- Improve highlighter robustness
- Fix project handling for alire generated projects
- Refactoring documentation
- Fix aggregate snippets
- Futher hover migration
gnatdoc
engine - Implement semantic token range request
- Fix formatting (pretty printer) for square brackets
- Bundle JS files before packaginf
.vsix
file
- New refactoring: Change Parameter Type
- New refactoring: Change Parameter Default Value
- New refactoring: Pull Up Declaration
- New refactoring: Extract Subprogram
- Fix Call Hierarchy requests
- First steps with introducing GNATdoc for hovers
- New tasks for GNATprove integration
- Fix for aggregate completion
- Semantic tokens highlighter
- Custom colors in VS Code
- Pull Up Declaration initial implementation
- New tasks to Prove line/region with gnatprove
- Some bug fixes for completion
out.mp4
- Initial implementation of Extract Subprogram Refactoring
- Signature help improvements
- Fixes in attribute and aspect completion
- Display gnatpp messages if any
- Recompute predefined tasks when scenario vars change
- Fix stale_reference_error exceptions once again
- A new completion provider for "end names"
- Add a VS Code task for gprclean
- A stub for GPR language server
- Fix some completion issues
- Implement cancel for FoldingRange request
- Use macos-10.15/ubuntu-18.04 for building on GH
- Do not raise errors for missing object dirs
- A new
Add_Parameter
refactoring tool
- Avoid duplicates in completion
- Implement partial response for Workspace_Symbols request
- Better completion for parameters
- A build task provider for gnatprove
- Use GCC 11 by alire to build the extension
- File renaming of top level decls
- Special case in completion for end names
- Сompletion for attributes
- New "Add Parameter" refactoring tool
- Remove "Imprecise fallback" popup
- Use line terminator of the document instead of hardcoded '\n'
- Increase stack size to prevent craches on deep nesting calls in LAL
- Index runtime files at startup for better completions
- Compute some completion properties lazily
- Filter the signatures using the previous designators
- Fix optional capabilities parsing for some clients (e.g. emacs)
- Add project loading diagnostics and code actions to help fixing
- Don't insert 'invisible' in subprogram snippets
- Implement library unit renames!
- Fix ALS executable name on Windows
- Fix errors when there are TABs and some Unicode in sources
- Fix issues with signature help requests
- Add a Tutorial
- Switch build to GNAT CE 2021 for Linux and Windows
- Improve support for files detached from a project
- Fixes for invisible symbol completion
- More entities in Workspace Symbols
- Fix signatureHelp for null subps and exprfuncs
- Set filterText for invisible symbols completion
- Fix snippet indentation characters
- Fix hightlight rules for
body
patterns
- Add a command to switch between spec and body files.
- Add Suppress Separate refactoring tool
- Update name of 'refactoring_rename' tool
- Silence notification for imprecise navigation
- Fix signatureHelp active parameter + Prefix notation
- Fix errors on win32 with case-insensitive URIs
- Fix refactoring import capatibility
- Change implementation of callHierarchy requests
- The signatureHelp support
- A fix for STALE_REFERENCE_ERROR
- Improvements/fixes for callHierarchy
- A fix for Change Subp Signatures refactorings
- Task provider for "build project"/"check file" tasks
- Named Parameters refactoring for more constructs
- Add basic support for preprocessor directives
- Add declaration in textDocument/Highlight results
- Fix symlink issue and a new followSymlinks setting
- Add 3 subprogram signature refactoring tools:
- Remove Parameter
- Change Parameter Mode
- Move Parameter Left/Right
- Suppress more LAL exception raised on invalid code.
- Use client side file monitoring if the client provides it.
- Improve refactoring rename
- Use iterators for completion results could prevent stack overflow on a large completion list
- Improved safety for entity renaming
- Call hierarchy follows renaming declarations
- Workspace symbols and completion don't display local symbols any more
- Use static linking for the server
- Implementation of
textDocument/highlight
- filesystem monitoring (off by default)
- Implement
textDocument/prepareRename
request - New
relocateBuildTree
androotDir
configuration options - Changes in
textDocument/declaration
behavior - New a 'displayMethodAncestryOnNavigation' configuration option
- Add call hierarchy request from LSP 3.16
- New Code Action to insert with-clause and a prefix to an unresolved symbol in the editor.
- Show high level pragma in documentSymbols
- Dedicated README.md for vscode extension
- Change in the "Go to definition": List the overriding subprograms only if we are clicking on a 'usage' name
- Add highlighting for gnatprep preprocessor directives
- Implementation of workspace/symbol request
- Mark completion with '(invisible)' text if needed
- Minor fixes in imprecise navigation and completion
- Restore advanced syntax highlighter.
- Documentation for invisible symbol completions
- Separate variables and constants in documentSymbol
- Fix mode position in subprogram snippets
- Completion for invisible symbols with a lower priority
- Completion for keywords, aspects, pragmas and attributes.
- Find access references in dotted name expressions
- Use Pretty_Printer switches from a project file for formatting
- Minor fixex for hover, completion, etc
- Add foldComments setting
- Completion for aggregate of derived types.
- Faster JSON codecs
- Use incremental text changes
- Implementation document formatting request
- Handle aggregates for completion
- Revert for basic syntax highlighter for a while
- Some tuning in DocumentSymbols request
- Improvements in completion
- Display project name for aggregate project in hovers
- Improve rename in comments
- Minor fixes in folding
- Syntax highlighter refactoring
- Use case-insensitve check to filter completion
- Add documentation for completion items
- Enable work progress report for indexing
- Fix behavior when encountering an invalid project
- Add completion for subprogram parameters
Last changes:
- Move the extension to the new Marketplace account.
We are going to move ALS extension to our new corporative Marketplace account.
Please, uninstall the extension and then launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
ext install AdaCore.ada
Last changes:
- Some syntax rules reorganization
- Improve folding for some constructs and comments
- Filter completion results with typed prefix
- Fix named parameter refactoring issues
- Initial implementation of the folding request
- Announce implementationProvider during initialization
- Advanced syntax highlighter for Ada by Patrick Kelly
- Basic highlighting for *.ali files by Patrick Kelly also
- More Ada snippets and new .gpr snippets
- Expirimental support of receiving incremental editor changes
- Hover responses for is abstract/null subprogram
- Implementation of "named parameters" refactoring
- Fix identifier highlightштп in vscode extension
- Consider runtime files as part of project files
- load dirs on demand when the project is implicit
- Fix Assetion_Error sor some
hover
request
- For
textDocument/documentSymbol
return a hierarchy of symbols if the client supports it. - Don't raise an exception on unknown method, return corresponing erro code instead.
- Rename parameters in the whole hierarchy. When renaming a parameter of a tagged type primitive, we now also rename this parameter in all the base and overriding subprograms.
- Don't send
executeCommandProvider
anddocumentLinkProvider
, because the server doesn't implement such requests. - Remove performance bottleneck.
- Add
child
andreference
ALS reference kinds(an als extension). - Improve
textDocument/typeDefinition
to work with more declaration kinds (not just with object_declaration). - Improve project handling. In the case that no project is specified, use an implicit project which covers the subdirectories as well. This is slightly friendlier for VScode users who don't have a .gpr at the root of a hierarchy.
- The
textDocument/declaration
request is now implemented. - The 'textDocument/implementation' request is now implemented.
- Find all references doesn't return 'end label' any more.
- Hover includes aspect clauses for subprogram declaration.
- The
textDocument/definition
request returns overrided and overriding declarations. - The
textDocument/rename
request renames the overrided and overriding subprograms.
- Add Problem Matcher
- Rebase libadalang to 13a95e7af79c94c0ec830052fbf6aa06e90eefae
- Add support for the
$/progress
notification from LSP v3.15 - Add a fallback mechanism for
definition
- Allow "called_by" on an abstract definition
- Don't return error responses when Property_Error is raised
- Suppress noisy "loading"/"done loading" messages
- Suppress noisy "loading"/"done loading" messages.
- Don't return error responses when Property_Error is raised in Libadalang.
- Improve testsuite.