2018-07-01 00:36:26 -07:00
# LSP Example
2017-09-04 17:43:23 +02:00
2018-12-21 10:06:05 -08:00
Heavily documented sample code for https://code.visualstudio.com/api/language-extensions/language-server-extension-guide
2017-09-04 17:43:23 +02:00
2018-07-01 00:36:26 -07:00
## Functionality
This Language Server works for plain text file. It has the following language features:
- Completions
- Diagnostics regenerated on each file change or configuration change
It also includes an End-to-End test.
## Structure
```
.
├── client // Language Client
│ ├── src
│ │ ├── test // End to End tests for Language Client / Server
│ │ └── extension.ts // Language Client entry point
├── package.json // The extension manifest.
└── server // Language Server
└── src
└── server.ts // Language Server entry point
```
2017-09-04 17:43:23 +02:00
2018-10-31 08:05:17 -05:00
## Running the Sample
2017-09-04 17:43:23 +02:00
2018-07-01 00:36:26 -07:00
- Run `npm install` in this folder. This installs all necessary npm modules in both the client and server folder
- Open VS Code on this folder.
2022-01-18 12:42:03 -08:00
- Press Ctrl+Shift+B to start compiling the client and server in [watch mode ](https://code.visualstudio.com/docs/editor/tasks#:~:text=The%20first%20entry%20executes,the%20HelloWorld.js%20file. ).
2022-01-19 09:42:43 -08:00
- Switch to the Run and Debug View in the Sidebar (Ctrl+Shift+D).
2022-01-18 12:32:27 -08:00
- Select `Launch Client` from the drop down (if it is not already).
- Press ▷ to run the launch config (F5).
- If you want to debug the server as well, use the launch configuration `Attach to Server`
2022-01-18 12:48:48 -08:00
- In the [Extension Development Host ](https://code.visualstudio.com/api/get-started/your-first-extension#:~:text=Then%2C%20inside%20the%20editor%2C%20press%20F5.%20This%20will%20compile%20and%20run%20the%20extension%20in%20a%20new%20Extension%20Development%20Host%20window. ) instance of VSCode, open a document in 'plain text' language mode.
2018-07-01 00:36:26 -07:00
- Type `j` or `t` to see `Javascript` and `TypeScript` completion.
2018-10-31 08:05:17 -05:00
- Enter text content such as `AAA aaa BBB` . The extension will emit diagnostics for all words in all-uppercase.