CodeWhisperer Language Server
npm install @aws/lsp-codewhispererCodeWhispererServerTokenProxy as the server and set up the environment variable HTTPS_PROXY or https_proxy to the proxy URL you are using.```
export HTTPS_PROXY=https://proxy.example.com:5678
export https_proxy=https://proxy.example.com:5678
or
``
export HTTPS_PROXY=http://username:password@proxy.example.com:5678
export https_proxy=http://username:password@proxy.example.com:5678
To make cross-platform bundle, use bundler that allow overriding modules with compatible alternatives (e.g. Webpack).
NodeJS modules used in this package
- CodeWhispererServer:
- pathpath
- SecurityScanServer:
- , os
To override modules use next alternatives:
- path - https://www.npmjs.com/package/path-browserifyos
- - https://www.npmjs.com/package/os-browserify
The following Amazon Q configurations can be fetched with the aws/getConfigurationFromServer request exposed by QConfigurationServer:
- customizations
- developer profiles
The request expects a section parameter, recognizing the following options:
- aws.qaws.q.customizations
- aws.q.developerProfiles
-
Example:
`ts`
await languageClient.sendRequest(getConfigurationFromServerRequestType.method, {
section: 'aws.q',
})
// result:
{
'customizations': [customization1, customization2, ...],
'developerProfiles': [profile1, profile2, ...] // (if enabled)
}
Granular requests such as aws.q.customizations will only return that particular configuration.
Example:
`ts`
await languageClient.sendRequest(getConfigurationFromServerRequestType.method, {
section: 'aws.q.customizations',
})
// result:
[customization1, customization2, ...]
#### Developer Profiles
By default, developer profiles are not fetched. To enable the fetching, the client needs to signal support for them at initialization in the InitializeParams.
Example:
`ts`
const params: InitializeParams = {
// ...
aws: {
// ...
awsClientCapabilities: {
q: {
developerProfiles: true
}
}
}
}
The server supports the following workspace configurations:
- aws.q.customization (type: string | undefined, default: undefined)aws.q.optOutTelemetry
- The customization ARN to be used in API requests, an empty string will be interpreted as undefined.
- (type: OPTOUT | OPTIN, default: OPTIN)aws.q.inlineSuggestions.extraContext
- This flag controls whether to opt-in or opt-out to telemetry.
- (type: string | undefined, default: undefined)aws.q.inlineChat.extraContext
- The extra context to be included for suggestions, an empty string will be interpreted as undefined. See below for more context.
- (type: string | undefined, default: undefined)aws.codeWhisperer.includeSuggestionsWithCodeReferences
- The extra context to be included for inline chat, an empty string will be interpreted as undefined. See below for more context.
- : (type: boolean, default: false)aws.codeWhisperer.shareCodeWhispererContentWithAWS
- This flag controls whether to include references with code suggestions.
- : (type: boolean, default: false)
- This flag controls whether to share Q content with AWS.
The client can signal updates to the workspace configuration with the DidChangeConfiguration notification.
#### Extra context for Q Inline Suggestions
In cases when the client runs in a specific environment that requires customized suggestions, the server supports a aws.q.inlineSuggestions.extraContext workspace configuration. This extra context will be passed to the left file content of the request in the beginning of the file.
#### Extra context for Q Inline Chat
In cases when the client runs in a specific environment that requires customized inline chat responses, the server supports a aws.q.inlineChat.extraContext` workspace configuration. This extra context will be prepended to the document text of the request, similar to how inline suggestions work.