# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [unreleased]

## [0.2.0] - 2024-04-07 

### Added 

- Support for the following LSP features
  - Diagnostics: Shows errors in the syntax of a ion shell script. Semantic errors like referencing 
    a not defined variable are not supported right now.
  - Go to definition: 
    - Variable Reference: Jumps from a reference to a variable to its declaration in the same file.
    - Function Reference: Jumps invocation to its declaration in the same file.
  - Find References:
    - Variable Reference: List all references to and 
      redeclaration of the variable name within current and 
      all children scopes within the same file
    - Function Reference: List all invocation of the declared function
  - Document Symbols: Shows all declared variables and functions within a script
  - Hover information: Shows the following declaration information 
    on hovering over a function call or variable reference. 
    - Type of declaration (variable of function) 
    - Name of declaration (variable or function name)
    - Line of declaration
    - All comments 
       - without blank lines in between 
       - coming before the declaration 
       - Not being part of another declaration.
    - Inline comment, right from the declaration up to end of line
    - Specific to functions 
      - Arguments with optional type annotation.
      - Doc strings if declaration is for a function
    - Specific to variables
      - Type annotation if variable name has a type annotation.
      
[unreleased]: https://gitlab.redox-os.org/redox-os/ion_lsp/-/commits/main?ref_type=heads
[0.2.0]: https://gitlab.redox-os.org/redox-os/ion_lsp/-/tags/0.2.0v