summaryrefslogtreecommitdiff
path: root/extension/src/README.md
blob: 76b96ea0bcc988939b86f1c1c76d552851880b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Continue VS Code Extension README

## How to get started with development

1. Clone the `continue` repo

2. Open a VS Code window with the `continue` repo

3. Package and then start the FastAPI server by following instructions outlined in `package/server/README.md`

4. Open the `extension` sub-directory of the repo in a second VS Code window

5. Run `npm install`

6. Run `npm run clientgen`

7. Run `cd react-app`

8. Run `npm run build`

9. Run `cd ..` to return to `extension` directory

10. Then run `npm run compile`

11. Open `src/activate.ts` file (or any TypeScript file)

12. Press `F5` on your keyboard to start `Run and Debug` mode

13. `cmd+shift+p` to look at developer console and select Continue commands

14. Every time you make changes to the code, you need to run `npm run compile`

15. If you run into a "command not found" error, try running `npm run rebuild` and then `npm run compile`

## Alternative: Install a packaged version

You should always have a packaged version installed in VS Code, because when Continue is broken you'll want a stable version to help you debug. There are four key commands in the `package.json`:

1. `npm run package` will create a .vsix file in the `build/` folder that can then be installed. It is this same file that you can share with others who want to try the extension.

2. `npm run install-extension` will install the extension to VS Code. You should then see it in your installed extensions in the VS Code sidebar.

3. `npm run uninstall` will uninstall the extension. You don't always have to do this thanks to the reinstall command, but can be useful when you want to do so manually.

4. `npm run reinstall` will go through the entire process of uninstalling the existing installed extension, rebuilding, and then installing the new version. You shouldn't be doing this every time you make a change to the extension, but rather when there is some significant update that you would like to make available to yourself (or if you happen to be debugging something which is specific to the packaged extension).

## Background

- `src/bridge.ts`: connects this VS Code Extension to our Python backend that interacts with GPT-3
- `src/debugPanel.ts`: contains the HTML for the full window on the right (used for investigation)
- `src/DebugViewProvider.ts`: contains the HTML for the bottom left panel
- `src/extension.ts`: entry point into the extension, where all of the commands / views are registered (activate function is what happens when you start extension)
- `media/main.js`: handles messages sent from the extension to the webview (bottom left)
- `media/debugPanel.js`: loaded by right window

## Features

- `List 10 things that might be wrong` button
- `Write a unit test to reproduce bug` button
- Highlight a code range + `Find Suspicious Code` button
- `Suggest Fix` button
- A fix suggestion shown to you + `Make Edit` button
- Write a docstring for the current function
- Ask a question about your codebase
- Move up / down to the closest suggestion

## Commands

- "Write a docstring for the current function" command (windows: `ctrl+alt+l`, mac: `shift+cmd+l`)
- "Open Debug Panel" command
- "Ask a question from input box" command (windows: `ctrl+alt+j`, mac: `shift+cmd+j`)
- "Open Captured Terminal" command
- "Ask a question from webview" command (what context is it given?)
- "Create Terminal" command ???
- "Suggestion Down" command (windows: `shift+ctrl+down`, mac: `shift+ctrl+down`)
- "Suggestion Up" command (windows: `shift+ctrl+up`, mac: `shift+ctrl+up`)
- "Accept Suggestion" command (windows: `shift+ctrl+enter`, mac: `shift+ctrl+enter`)