support providing extra context when evaluating the current contributions
Created by: sqs
This makes it possible to construct (e.g.) a list of actions for a specific part of the UI, such as the hover, and provide information to the hover actions via context, without setting that context globally. For example, this would help with something like definitionURL
if that were stored in the hover and used to determine the target of the "Go to definition" button.
Also adds support for typed property values in Context. This allows the context (which is used for when
expressions and other expressions in an extension manifest) to contain properties whose value is a TypeScript type other than the primitive types (or Context itself). This is useful when, for example,
you have a TextDocumentPositionParams
value that is the value of a context property; using Context<TextDocumentPositionParams>
makes it typecheck.