Skip to content

Improve content assist - phase 2

Improve content assist processor to provide better/more relevant suggestions

Use cases for proposing:

  • fields/functions of structured types after a variable/constant/function call etc. + "."
    • union, record, set
    • component
    • class
    • function without parameters
    • function with parameters
    • function parameters
  • component operations, e.g. MyComp.create/done/stop etc.
  • port operations, e.g. MyPort.start/stop/send/receive etc.
  • timer operations, e.g. MyTimer.start/stop/read/running/timeout
  • all/any timer/component/port operations
  • testcases after 'execute('
  • verdicts after 'setverdict('
  • in doc comments, 'deprecated' after '@status'
  • encoding related proposals
    • encoding types
    • encoding attributes
    • attribute keyword
    • attribute modifier
    • extension attribute keywords
    • extension attribute prototype settings
    • extension attribute printing settings
    • extension attribute encode/decode type
    • extension attribute encode/decode option
  • 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
  • modifier keywords starts with "@"
    • class definition: type class @abstract/@final/@trait
    • class function definition: function @final/@abstract/@deterministic
    • module function definition: function @control/@deterministic
    • function parameter: function (@modifier)? fname(..., @lazy/@fuzzy
Edited by Adam Knapp