Improve content assist - phase 2
Improve content assist processor to provide better/more relevant suggestions
Use cases for proposing:
- [x] fields/functions of structured types after a variable/constant/function call etc. + "."
- [x] union, record, set
- [x] component
- [x] class
- [x] function without parameters
- [x] function with parameters
- [x] function parameters
- [x] component operations, e.g. MyComp.create/done/stop etc.
- [x] port operations, e.g. MyPort.start/stop/send/receive etc.
- [x] timer operations, e.g. MyTimer.start/stop/read/running/timeout
- [x] all/any timer/component/port operations
- [x] testcases after 'execute('
- [x] verdicts after 'setverdict('
- [x] in doc comments, 'deprecated' after '@status'
- [x] encoding related proposals
- [x] encoding types
- [x] encoding attributes
- [x] attribute keyword
- [x] attribute modifier
- [x] extension attribute keywords
- [x] extension attribute prototype settings
- [x] extension attribute printing settings
- [x] extension attribute encode/decode type
- [x] extension attribute encode/decode option
- [x] after class 'extends' propose potential base classes considering the following:
- don't propose the class itself
- don't propose classes that are already listed in the 'extends' list
- if a non-trait class is already listed, only propose trait classes
- don't propose final classes that cannot be extended
- [x] modifier keywords starts with "@"
- [x] class definition: type class @abstract/@final/@trait
- [x] class function definition: function @final/@abstract/@deterministic
- [x] module function definition: function @control/@deterministic
- [x] function parameter: function (@modifier)? fname(..., @lazy/@fuzzy
issue