* Implement get_token_id using a Token as parameter and rename the old implementation
* Add the trait TokenSpan which will annotate AST elements with a span of tokens
The macros `with_token_span` and `TokenSpan` of the newly added crate
`vhdl_lang_macros` automatically implement this trait for structs with
named fields.
* Apply the `with_token_span` and `TokenSpan` macros to some AST elements
Namely: TypeDeclaration, ObjectDeclaration, ProcedureSpecification,
FunctionSpecification, SubprogramInstantiation, SubprogramDeclaration,
LibraryClause, UseClause, ContextReference and ContextItem
* Introduce a new AST element SubprogramSpecification, and remove Option<>
from the TokenSpan trait
A SubprogramSpecification is the sole field of SubprogramDeclarations
but with a different meaning and a different token span.
* Apply the TokenSpan macros to further AST elements
The affected elements include:
- Declaration (and all its subelements)
- AnyPrimaryUnit (and all its subelements)
- AnySecondaryUnit (and all its subelements)
- AnyDesignUnit
Small changes to the parsing of file declarations were done for easier
handling and to better represent the official VHDL grammar
* Update version of vhdl_lang_macros crate
* Remove unused function get_token_id
* Rename TokenSpan related fields and structs and introduce helper
functions for unit tests
For consistency reasons rename the trait TokenSpan to HasTokenSpan and
the struct TokenInfo to TokenSpan.
Furthermore, rename the info field to span.
* Remove TokenSpan from subprogram specifications
* Change tests regarding file declarations to test if the parser recovers
successfully when encountering errors
* Introduce helper functions to cut down the size of some subprogram unit
tests
* Rename FoundDeclaration::SubprogramSpec and remove visitor functions for subprogram specifications
* Simplify the completion generics and port extraction method
* Remove debug print statement in test code
* Also extract the ports or generics for an uninstantiated package
* Fix: Only walk the units inside a source file with the visitor
* Fix: Only walk the units inside a source file with the visitor
* Remove unused source variable
* Implement more complex completion item
* Add more completion kinds
* Add support for snippets
* clippy
* remove non rendered text
* Add primitive overload resolution
* clippy
* improve overloaded format
* Re-add detail to standard completion item
* Make label and insertion text different
* fmt
* fix tests
* Remove items method and make local arena private again
* Refactor completion
* Add 'all' case
* Implement changes in server
* remove obsolete change
* Refactor to AnyEnt instead of ID
* Remove obsolete get_end function
* Fix unpredictable text order
* Fix: All should use the Completion item kind 'keyword'
* Reduce code duplication
* rustify PortsOrGenericsExtractor
* Remove unused function
* Refactor for any keyword and use function instead of text
* Conditional snippet support
* Don't complete when the last token is not a left par or comma
* Also complete with an identifier on the right hand side
* Refactor: standalone functions from methods
* Remove serde dependency from vhdl_lang
* clippy
* symmetry in docstring