Context based intellisense is provided to each of the activities available when designing a new Warewolf service or microservice. The file system based activities for example, provide the user with intellisense options based on the local file system.
Intellisense results are generated using the suggestion provider which uses the language parser located in the WarewolfLanguageParser project to calculate the list of possible auto-complete options available to a user, given a Datalist and user context. Each of the possible intellisense categories is handled using a provider model. The file system tool for example would use a file system intellisense provider that provides auto-complete options based on the users Datalist and the local file system.
Providers implement the IntellisenseProvider interface. The GetIntellisenseResults method is responsible for generating intellisense results given an IntellisenseProviderContext. The context includes all necessary inputs required to generate a result.
The current concrete intellisense providers are defined in the Dev2.Intellisense project.
The Warewolf data language is parsed using a custom written parser. The language itself is inherently recursive and expressions can be built by recursively evaluating other expressions. The language parser is defined in the WarewolfLanguageParser. The purpose of the parser is to take a language expression such as [[a]][[b]] and split it up into a set of tokens. The tokens are then used to either query the Service’s Data List.
When parsing for intellisense, the purpose of the parser is to generate a set of regions that can be used to generate a set of auto-complete options. The parser parses a string into a set of tokens and splits the tokens into a set of well-formed and non-well-formed regions. These regions are then compared to the variable list and a set of auto-complete results is generated.