|
1 | 1 | # Language Servers for AWS
|
2 | 2 |
|
3 |
| -Language servers for integration with IDEs and Editors |
| 3 | +Language servers for integration with IDEs and Editors, which implement the protocol (LSP extensions) defined in the [language-server-runtimes](https://github.com/aws/language-server-runtimes/tree/main/runtimes) repo. |
4 | 4 |
|
5 |
| -## Relation with Language Server Runtimes |
| 5 | +## Where things go |
6 | 6 |
|
7 |
| -This monorepo hosts language servers created using the [Language Server Runtimes](https://github.com/aws/language-server-runtimes/tree/main/runtimes)'s Server Interface. This enables the servers to use features provided by the Runtimes in the same package. |
8 |
| - |
9 |
| -Want to create a new language capability? See our example [hello-world-lsp](server/hello-world-lsp) server and it's [implementation](app/hello-world-lsp-runtimes) (using our runtime), run it using the instructions provided [here](https://github.com/aws/language-servers/blob/main/CONTRIBUTING.md#with-vscode-toolkit-extension). To see a more complex example, see our [Amazon Q servers](server/aws-lsp-codewhisperer). |
10 |
| - |
11 |
| -Want to create a new protocol or feature that would be available to all language servers? Head over to the [Language Server Runtimes repo](https://github.com/aws/language-server-runtimes/tree/main) and start building! |
| 7 | +- To create a new language capability, see the example [hello-world-lsp](server/hello-world-lsp) server and its [implementation](app/hello-world-lsp-runtimes) (using our runtime), and [run it](https://github.com/aws/language-servers/blob/main/CONTRIBUTING.md#with-vscode-toolkit-extension). |
| 8 | + - For a more complex (real-world) example, see the [Amazon Q language server](server/aws-lsp-codewhisperer). |
| 9 | +- To create a new protocol feature (LSP extension) for all language servers: contribute to the [language-server-runtimes](https://github.com/aws/language-server-runtimes/tree/main) repo. |
12 | 10 |
|
13 | 11 | ## Structure
|
14 | 12 |
|
15 | 13 | Monorepo
|
16 | 14 |
|
17 |
| -``` |
18 |
| -. |
19 |
| -── app - bundled javascriot runtime applications for distribution and integration into IDEs |
20 |
| - └── aws-lsp-buildspec-runtimes - application containing the buildspec language server |
21 |
| - └── aws-lsp-cloudformation-runtimes - application containing the CloudFormation language server |
22 |
| - └── aws-lsp-s3-runtimes - application containing the S3 language server |
23 |
| -── client - Sample LSP integrations for various IDEs. |
24 |
| - Used to test out the Language Servers |
25 |
| - └── jetbrains/ - Minimal JetBrains extension to test the language server |
26 |
| - └── visualStudio/ - Minimal Visual Studio extension to test the language server |
27 |
| - └── vscode/ - Minimal vscode extension to test the language server |
28 |
| -── core - contains supporting libraries used by app and server packages |
29 |
| - └── aws-lsp-core - core support code |
30 |
| -── script - loose scripts used to create `npm foo` commands in the root folder |
31 |
| -── server - packages that contain Language Server implementations |
32 |
| - └── aws-lsp-buildspec - Language Server that wraps a JSON Schema for CodeBuild buildspec |
33 |
| - └── aws-lsp-cloudformation - Language Server that wraps a JSON Schema for CloudFormation |
34 |
| - └── aws-lsp-codewhisperer - Language Server that surfaces CodeWhisperer recommendations |
35 |
| - - experimental. Shows how recommendations can surface through |
36 |
| - completion lists and as ghost text |
37 |
| - └── aws-lsp-s3 - Example language server that provides S3 bucket names as completion items |
38 |
| - - Shows a concept where credentials can be provided from an IDE extension |
39 |
| - (See vscode and vs client readmes) |
40 |
| - └── aws-lsp-json - Language Server that wraps a JSON Schema and provides support for JSON format. |
41 |
| - Includes reusable code related to JSON language service handling. |
42 |
| - └── aws-lsp-yaml - Language Server that wraps a JSON Schema and provides support for YAML format. |
43 |
| - Includes reusable code related to YAML language service handling. |
44 |
| -``` |
45 |
| - |
46 |
| -## How To Contribute |
47 |
| - |
48 |
| -[How to contribute to the language server.](CONTRIBUTING.md#contributing) |
49 |
| - |
50 |
| -## Building The Language Server |
51 |
| - |
52 |
| -[How to build the language server.](CONTRIBUTING.md#building-the-language-server) |
53 |
| - |
54 |
| -## Troubleshooting |
55 |
| - |
56 |
| -[Troubleshooting information.](CONTRIBUTING.md#troubleshooting) |
| 15 | +- [app/](app) - bundled javascript runtime applications for distribution and integration into IDEs |
| 16 | + - [aws-lsp-buildspec-runtimes/](app/aws-lsp-buildspec-runtimes) - application containing the buildspec language server |
| 17 | + - [aws-lsp-cloudformation-runtimes/](app/) - application containing the CloudFormation language server |
| 18 | + - [aws-lsp-s3-runtimes/](app/aws-lsp-buildspec-runtimes) - application containing the S3 language server |
| 19 | +- [client/](client) - Sample LSP integrations for various IDEs. Used to test out the Language Servers |
| 20 | + - [jetbrains/](client/jetbrains/) - Minimal JetBrains extension to test the language server |
| 21 | + - [visualStudio/](client/visualStudio/) - Minimal Visual Studio extension to test the language server |
| 22 | + - [vscode/](client/vscode/) - Minimal vscode extension to test the language server |
| 23 | +- [core/](core) - contains supporting libraries used by app and server packages |
| 24 | + - [aws-lsp-core](core/aws-lsp-core) - core support code |
| 25 | +- [script](script) - loose scripts used to create `npm foo` commands in the root folder |
| 26 | +- [server](server) - packages that contain Language Server implementations |
| 27 | + - [aws-lsp-buildspec](server/aws-lsp-buildspec) - Language Server that wraps a JSON Schema for CodeBuild buildspec |
| 28 | + - [aws-lsp-cloudformation](server/aws-lsp-cloudformation) - Language Server that wraps a JSON Schema for CloudFormation |
| 29 | + - [aws-lsp-codewhisperer](server/aws-lsp-codewhisperer) - Language Server that surfaces CodeWhisperer recommendations. |
| 30 | + - Shows recommendations through completion lists and as ghost text> |
| 31 | + - [aws-lsp-s3](server/aws-lsp-s3) - Example language server that provides S3 bucket names as completion items |
| 32 | + - Shows a concept where credentials can be provided from an IDE |
| 33 | + extension (See vscode and vs client readmes) |
| 34 | + - [aws-lsp-json](server/aws-lsp-json) - Language Server that wraps a JSON Schema and provides |
| 35 | + support for JSON format. Includes reusable code related to JSON language |
| 36 | + service handling. |
| 37 | + - [aws-lsp-yaml](server/aws-lsp-yaml) - Language Server that wraps a JSON Schema and provides |
| 38 | + support for YAML format. Includes reusable code related to YAML language |
| 39 | + service handling. |
| 40 | + |
| 41 | +## Contributing |
| 42 | + |
| 43 | +- [How to contribute](CONTRIBUTING.md#contributing) |
| 44 | +- [How to build](CONTRIBUTING.md#building-the-repo) |
| 45 | +- [Troubleshooting](CONTRIBUTING.md#troubleshooting) |
57 | 46 |
|
58 | 47 | ## Security
|
59 | 48 |
|
|
0 commit comments