Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(amazonq): Add language server support for codewhisperer #6462

Open
wants to merge 204 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
204 commits
Select commit Hold shift + click to select a range
d2d9a3a
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 4, 2024
9a353cb
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 4, 2024
5e6b8dc
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 4, 2024
fe709e8
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 4, 2024
8e72b6c
feat(amazonq): setting toggle for using the amazonq language server (…
jpinkney-aws Dec 4, 2024
4d969a6
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 4, 2024
e193d44
feat(amazonq): Create a common langauge server downloader (#6148)
jpinkney-aws Dec 5, 2024
39817f3
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 5, 2024
5d6512f
feat(amazonq): Use codewhisperer language server for completions (#6158)
jpinkney-aws Dec 5, 2024
c7b07e5
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 5, 2024
b615fa4
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 6, 2024
a925e12
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 6, 2024
1d818ae
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 6, 2024
dba5605
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 6, 2024
a861051
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 6, 2024
dc33a16
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 7, 2024
7cbcc81
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 7, 2024
81a12b2
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 7, 2024
ea2cb7f
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 9, 2024
438a132
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 9, 2024
2dcdf25
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 9, 2024
9a02ee3
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 9, 2024
26f71a9
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 9, 2024
5772a4d
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 9, 2024
5f1e679
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
98847ad
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
e9bd27a
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
e8f8a04
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
4a89ddc
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
4105abc
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
4bf91d6
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
fdec468
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 10, 2024
9832cbb
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 11, 2024
dda7a05
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 11, 2024
4b9013f
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 11, 2024
6fd09e7
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 11, 2024
b009f81
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 12, 2024
3b2dc5f
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 12, 2024
86a6e6e
Merge master into feature/amazonqLSP
aws-toolkit-automation Dec 12, 2024
20efa94
feat(amazonq): Auto update language servers when new versions are ava…
jpinkney-aws Jan 8, 2025
8dbb71c
Merge remote-tracking branch 'origin/master' into feature/amazonqLSP
jpinkney-aws Jan 8, 2025
b3f2e82
Merge pull request #6223 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Jan 9, 2025
3d2ffd8
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 9, 2025
c49265b
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 9, 2025
14b1385
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 9, 2025
8d4b8a5
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 9, 2025
702e444
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 10, 2025
35b679c
revert(amazonq): Remove loading mynah ui from language server (#6331)
jpinkney-aws Jan 10, 2025
750145d
ci(amazonq): fix linting issue on language server child process (#6332)
jpinkney-aws Jan 10, 2025
f4f022f
fix(amazonq): Language server overrides should reference assets direc…
jpinkney-aws Jan 10, 2025
e7b1c6d
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 13, 2025
7c1ddf7
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 13, 2025
5e3c12c
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 13, 2025
0a597bd
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 13, 2025
ec5d5af
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
7ba424d
test(amazonq): Add e2e tests for lsp auto updating (#6326)
jpinkney-aws Jan 14, 2025
dd32e09
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
40386bd
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
d5f284d
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
240d05c
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
43a5862
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
d5ac25f
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
c1c2a65
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 14, 2025
5a564c9
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
c110675
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
206b8a5
refactor(amazonq): Improve robustness of lsp installation process (#6…
jpinkney-aws Jan 15, 2025
c47782a
refactor(core): Move shared/languageServer -> shared/lsp
jpinkney-aws Jan 15, 2025
27e757b
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
4ea658d
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
8cae01a
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
f8c2557
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
4b32936
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
c4d28cc
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 15, 2025
c627a0d
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 16, 2025
58e2b96
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 16, 2025
2989b5e
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 16, 2025
d812279
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 16, 2025
acaf264
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 16, 2025
7cd91a6
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
1a889fe
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
b8e6c55
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
d5a8327
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
df611ea
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
af447e8
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Jan 17, 2025
ff53d2c
Merge pull request #6389 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Jan 17, 2025
45a1ab9
refactor(lsp): Use internal ChildProcess module for launching languag…
jpinkney-aws Jan 17, 2025
f69a889
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
9a0cf8f
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 17, 2025
debb1fb
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 20, 2025
f4bb479
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 20, 2025
2f21092
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 21, 2025
16d318e
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 21, 2025
8148c9a
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 21, 2025
58ebe21
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 21, 2025
46b3954
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 22, 2025
ecc5c6a
refactor(lint): migrate use of .forEach to for...of #6406
Hweinstock Jan 22, 2025
17d8422
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 22, 2025
bad001a
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 22, 2025
40d72d7
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 23, 2025
e705f92
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 23, 2025
74eabe9
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 23, 2025
ef7cd4e
refactor(fetcher): migrate withRetries to waitUntil (#6429)
Hweinstock Jan 24, 2025
16d2bc2
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 24, 2025
41e35ff
refactor(core): Manifest/LSP fetching should use httpResourceFetcher …
jpinkney-aws Jan 24, 2025
37c3c77
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 26, 2025
7488e0a
feat(lsp): older and delisted versions of lsp are automatically remov…
Hweinstock Jan 28, 2025
de684e0
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Jan 28, 2025
b17b3fa
Merge pull request #6437 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Jan 28, 2025
bdc49eb
fix(amazonq): Seperate inline completion from regular codewhisperer a…
jpinkney-aws Jan 28, 2025
f93a6bf
refactor(amazonq): Move codewhisperer activation from core to amazonq
jpinkney-aws Jan 28, 2025
b4b7d17
fix(amazonq): Register invokeInlineCompletion and rejectCodeSuggestio…
jpinkney-aws Jan 28, 2025
2fe8109
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Jan 28, 2025
beed965
Merge pull request #6447 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Jan 28, 2025
d9c90ea
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 28, 2025
6e330e7
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 28, 2025
37d1b1c
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 28, 2025
21c7af9
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 28, 2025
fb3151b
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 29, 2025
6a0f4ab
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 29, 2025
df5a240
refactor(amazonq): move src/inline -> src/app/inline
jpinkney-aws Jan 29, 2025
b87bd0d
Merge pull request #6446 from jpinkney-aws/codewhisperer-activation
jpinkney-aws Jan 29, 2025
9d4f971
docs(amazonq): Add instructions for debugging flare lsps (#6455)
jpinkney-aws Jan 29, 2025
e22d8ca
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 29, 2025
dfff38c
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 29, 2025
366cf47
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 30, 2025
1335661
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 30, 2025
1ddb1ac
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 30, 2025
9b5ec0d
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 31, 2025
c209f4c
Merge master into feature/amazonqLSP
aws-toolkit-automation Jan 31, 2025
522354a
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 1, 2025
caca411
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 3, 2025
30cc909
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 3, 2025
dbbe414
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 3, 2025
6063959
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 3, 2025
93a41af
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 4, 2025
119ed30
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 4, 2025
633b05b
telemetry(lsp): Integrate language server/manifest resolver telemetry…
Hweinstock Feb 6, 2025
e8c7c07
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Feb 7, 2025
9f511f1
Merge pull request #6495 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Feb 7, 2025
91adc3f
deps(amazonq): Update amazon q language server to 3.x.x (#6528)
jpinkney-aws Feb 7, 2025
b017c4b
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 7, 2025
d875978
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 7, 2025
2157f55
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 7, 2025
5bbea3e
fix(amazonq): language server fails to start in non-debug mode (#6538)
jpinkney-aws Feb 10, 2025
81d3454
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Feb 10, 2025
cc4bba8
Merge pull request #6536 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Feb 10, 2025
22e008c
feat(amazonq): Support pre-release LSP versions (#6539)
jpinkney-aws Feb 10, 2025
0b32aff
fix(amazonq): Split trace server logs into separate output channel (#…
jpinkney-aws Feb 10, 2025
2008dbd
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 10, 2025
ed3707a
refactor(logging): scope log messages to specific LSP using topic hea…
Hweinstock Feb 10, 2025
bd52f03
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Feb 11, 2025
526cf8a
fix(lint): remove imports from folders and index.ts
jpinkney-aws Feb 11, 2025
65daa2e
Merge pull request #6552 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Feb 11, 2025
b1a396c
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 11, 2025
87bad35
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 11, 2025
f519d9a
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 11, 2025
9114c43
feat(lsp): progress message when server is downloading (#6508)
tomcat323 Feb 11, 2025
79ab9f8
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 11, 2025
b83f6e9
Merge remote-tracking branch 'origin/master' into HEAD
jpinkney-aws Feb 13, 2025
c1b03c9
Merge pull request #6563 from aws/autoMerge/feature/amazonqLSP
jpinkney-aws Feb 13, 2025
411c6bf
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 13, 2025
c363389
feat(amazonq): Notify users to reload when amazonqLSP experiment flag…
jpinkney-aws Feb 13, 2025
8a297b8
fix(amazonq): Update initializationOptions extension name (#6468)
jpinkney-aws Feb 13, 2025
f3cbf0e
config(amazonq): simplify language server configuration options (#6570)
jpinkney-aws Feb 13, 2025
ec5074b
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 13, 2025
1db072f
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 13, 2025
7f1711b
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 13, 2025
b1d3e03
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 13, 2025
fb53603
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 14, 2025
1dbe54d
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 14, 2025
4bfdbd4
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 14, 2025
20f28f5
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 14, 2025
e8b3de7
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 17, 2025
1ea37cb
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 17, 2025
73edd14
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
20ce311
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
590a083
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
530fce2
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
d4d01ae
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
bf8aeaa
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
4078d4a
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
0257bf8
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
636f88a
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 18, 2025
f387ddc
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
36de6b8
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
c495e17
config(amazonq): Simplify amazon q workspace lsp configuration option…
jpinkney-aws Feb 19, 2025
c457e3a
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
428a495
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
887f969
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
bbc0cba
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
7d9e939
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 19, 2025
2d9c917
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
300cef4
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
2e76ce7
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
d8d82c7
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
c48f22c
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
9ad48ac
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
f312209
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
34569c2
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 20, 2025
591080f
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 21, 2025
7ea19c7
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 21, 2025
38204a0
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 21, 2025
d158dd8
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 21, 2025
51ef4e0
Merge master into feature/amazonqLSP
aws-toolkit-automation Feb 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,32 @@ Example:
}
```

<a name="amazonqLsp-settings">Overrides specifically for the Amazon Q language server</a> can be set using the `aws.dev.amazonqLsp` setting. This is a JSON object consisting of keys/values required to override language server: `manifestUrl`, `supportedVersions`, `id`, and `path`.

Example:

```json
"aws.dev.amazonqLsp": {
"manifestUrl": "https://custom.url/manifest.json",
"supportedVersions": "4.0.0",
"id": "AmazonQ",
"path": "/custom/path/to/local/lsp/folder",
}
```

<a name="amazonqWorkspaceLsp-settings">Overrides specifically for the Amazon Q Workspace Context language server</a> can be set using the `aws.dev.amazonqWorkspaceLsp` setting. This is a JSON object consisting of keys/values required to override language server: `manifestUrl`, `supportedVersions`, `id`, and `path`.

Example:

```json
"aws.dev.amazonqWorkspaceLsp": {
"manifestUrl": "https://custom.url/manifest.json",
"supportedVersions": "4.0.0",
"id": "AmazonQ",
"path": "/custom/path/to/local/lsp/folder",
}
```

### Environment variables

Environment variables can be used to modify the behaviour of VSCode. The following are environment variables that can be used to configure the extension:
Expand Down Expand Up @@ -472,6 +498,14 @@ Unlike the user setting overrides, not all of these environment variables have t

- `__CODEWHISPERER_REGION`: for aws.dev.codewhispererService.region
- `__CODEWHISPERER_ENDPOINT`: for aws.dev.codewhispererService.endpoint
- `__AMAZONQLSP_MANIFEST_URL`: for aws.dev.amazonqLsp.manifestUrl
- `__AMAZONQLSP_SUPPORTED_VERSIONS`: for aws.dev.amazonqLsp.supportedVersions
- `__AMAZONQLSP_ID`: for aws.dev.amazonqLsp.id
- `__AMAZONQLSP_PATH`: for aws.dev.amazonqWorkspaceLsp.locationOverride
- `__AMAZONQWORKSPACELSP_MANIFEST_URL`: for aws.dev.amazonqWorkspaceLsp.manifestUrl
- `__AMAZONQWORKSPACELSP_SUPPORTED_VERSIONS`: for aws.dev.amazonqWorkspaceLsp.supportedVersions
- `__AMAZONQWORKSPACELSP_ID`: for aws.dev.amazonqWorkspaceLsp.id
- `__AMAZONQWORKSPACELSP_PATH`: for aws.dev.amazonqWorkspaceLsp.locationOverride

#### Lambda

Expand Down
23 changes: 23 additions & 0 deletions docs/lsp-debugging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Language Server Debugging

1. Clone https://github.com/aws/language-servers.git and set it up in the same workspace as this project

e.g.

```
/aws-toolkit-vscode
/toolkit
/core
/amazonq
/language-servers
```

2. Inside of the language-servers project run:
```
npm install
npm run compile
npm run package
```
to get the project setup
3. Uncomment the `AWS_LANGUAGE_SERVER_OVERRIDE` variable in `amazonq/.vscode/launch.json` Extension configuration
4. Use the `Launch LSP with Debugging` configuration and set breakpoints in VSCode or the language server
103 changes: 101 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions packages/amazonq/.vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"env": {
"SSMDOCUMENT_LANGUAGESERVER_PORT": "6010",
"WEBPACK_DEVELOPER_SERVER": "http://localhost:8080"
// "__AMAZONQLSP_LOCATION_OVERRIDE": "${workspaceFolder}/../../../language-servers/app/aws-lsp-codewhisperer-runtimes/out/token-standalone.js",
},
"envFile": "${workspaceFolder}/.local.env",
"outFiles": ["${workspaceFolder}/dist/**/*.js", "${workspaceFolder}/../core/dist/**/*.js"],
Expand Down Expand Up @@ -135,6 +136,31 @@
"group": "4_E2ETestCurrentFile",
"order": 2
}
},
{
"name": "Attach to Language Server",
"type": "node",
"request": "attach",
"port": 6080, // Hard defined in core/src/shared/lsp/platform.ts
"outFiles": ["${workspaceFolder}/../../../language-servers/**/out/**/*.js"],
"skipFiles": [
"<node_internals>/**",
"${workspaceFolder}/../../../language-servers/**/node_modules/**/*.js"
],
"restart": {
"maxAttempts": 10,
"delay": 1000
}
}
],
"compounds": [
{
"name": "Launch LSP with Debugging",
"configurations": ["Extension", "Attach to Language Server"],
"presentation": {
"group": "1_Extension",
"order": 5
}
}
]
}
124 changes: 124 additions & 0 deletions packages/amazonq/src/app/inline/activation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
/*!
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/

import vscode from 'vscode'
import {
AuthUtil,
CodeSuggestionsState,
CodeWhispererCodeCoverageTracker,
CodeWhispererConstants,
CodeWhispererSettings,
ConfigurationEntry,
DefaultCodeWhispererClient,
invokeRecommendation,
isInlineCompletionEnabled,
KeyStrokeHandler,
RecommendationHandler,
runtimeLanguageContext,
TelemetryHelper,
UserWrittenCodeTracker,
vsCodeState,
} from 'aws-core-vscode/codewhisperer'
import { Commands, getLogger, globals, sleep } from 'aws-core-vscode/shared'

export async function activate() {
const codewhispererSettings = CodeWhispererSettings.instance
const client = new DefaultCodeWhispererClient()

if (isInlineCompletionEnabled()) {
await setSubscriptionsforInlineCompletion()
await AuthUtil.instance.setVscodeContextProps()
}

function getAutoTriggerStatus(): boolean {
return CodeSuggestionsState.instance.isSuggestionsEnabled()
}

async function getConfigEntry(): Promise<ConfigurationEntry> {
const isShowMethodsEnabled: boolean =
vscode.workspace.getConfiguration('editor').get('suggest.showMethods') || false
const isAutomatedTriggerEnabled: boolean = getAutoTriggerStatus()
const isManualTriggerEnabled: boolean = true
const isSuggestionsWithCodeReferencesEnabled = codewhispererSettings.isSuggestionsWithCodeReferencesEnabled()

// TODO:remove isManualTriggerEnabled
return {
isShowMethodsEnabled,
isManualTriggerEnabled,
isAutomatedTriggerEnabled,
isSuggestionsWithCodeReferencesEnabled,
}
}

async function setSubscriptionsforInlineCompletion() {
RecommendationHandler.instance.subscribeSuggestionCommands()

/**
* Automated trigger
*/
globals.context.subscriptions.push(
vscode.window.onDidChangeActiveTextEditor(async (editor) => {
await RecommendationHandler.instance.onEditorChange()
}),
vscode.window.onDidChangeWindowState(async (e) => {
await RecommendationHandler.instance.onFocusChange()
}),
vscode.window.onDidChangeTextEditorSelection(async (e) => {
await RecommendationHandler.instance.onCursorChange(e)
}),
vscode.workspace.onDidChangeTextDocument(async (e) => {
const editor = vscode.window.activeTextEditor
if (!editor) {
return
}
if (e.document !== editor.document) {
return
}
if (!runtimeLanguageContext.isLanguageSupported(e.document)) {
return
}

CodeWhispererCodeCoverageTracker.getTracker(e.document.languageId)?.countTotalTokens(e)
UserWrittenCodeTracker.instance.onTextDocumentChange(e)
/**
* Handle this keystroke event only when
* 1. It is not a backspace
* 2. It is not caused by CodeWhisperer editing
* 3. It is not from undo/redo.
*/
if (e.contentChanges.length === 0 || vsCodeState.isCodeWhispererEditing) {
return
}

if (vsCodeState.lastUserModificationTime) {
TelemetryHelper.instance.setTimeSinceLastModification(
performance.now() - vsCodeState.lastUserModificationTime
)
}
vsCodeState.lastUserModificationTime = performance.now()
/**
* Important: Doing this sleep(10) is to make sure
* 1. this event is processed by vs code first
* 2. editor.selection.active has been successfully updated by VS Code
* Then this event can be processed by our code.
*/
await sleep(CodeWhispererConstants.vsCodeCursorUpdateDelay)
if (!RecommendationHandler.instance.isSuggestionVisible()) {
await KeyStrokeHandler.instance.processKeyStroke(e, editor, client, await getConfigEntry())
}
}),
// manual trigger
Commands.register({ id: 'aws.amazonq.invokeInlineCompletion', autoconnect: true }, async () => {
invokeRecommendation(
vscode.window.activeTextEditor as vscode.TextEditor,
client,
await getConfigEntry()
).catch((e) => {
getLogger().error('invokeRecommendation failed: %s', (e as Error).message)
})
})
)
}
}
Loading
Loading