summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Dubovitskiy <kirill2003de@gmail.com>2023-08-08 13:42:57 -0700
committerKirill Dubovitskiy <kirill2003de@gmail.com>2023-08-08 16:00:53 -0700
commitf4ba68d5ce26463e6337822f8bf70e55a2d471d3 (patch)
tree9d4f78bcc570e81944004a755439062fb3a5177b
parent5295d1214be20f49aeb7d525420b880e5721b87e (diff)
downloadsncontinue-f4ba68d5ce26463e6337822f8bf70e55a2d471d3.tar.gz
sncontinue-f4ba68d5ce26463e6337822f8bf70e55a2d471d3.tar.bz2
sncontinue-f4ba68d5ce26463e6337822f8bf70e55a2d471d3.zip
Updated documentation to reflect the new fastest getting started path in VSCode
-rw-r--r--.vscode/launch.json1
-rw-r--r--CONTRIBUTING.md49
-rw-r--r--extension/CONTRIBUTING.md (renamed from extension/DEV_README.md)20
3 files changed, 36 insertions, 34 deletions
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 75ee1f7a..bbe1fd2e 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -44,6 +44,7 @@
"args": [
// Pass a directory to manually test in
"${workspaceFolder}/extension/manual-testing-sandbox",
+ "${workspaceFolder}/extension/manual-testing-sandbox/example.ts",
"--extensionDevelopmentPath=${workspaceFolder}/extension",
],
"outFiles": [
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 50d694f4..d0ea7556 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,23 +2,25 @@
## Table of Contents
-- [❤️ Ways to Contribute](#%EF%B8%8F-ways-to-contribute)
+- [Contributing to Continue](#contributing-to-continue)
+ - [Table of Contents](#table-of-contents)
+- [❤️ Ways to Contribute](#️-ways-to-contribute)
- [🐛 Report Bugs](#-report-bugs)
- [✨ Suggest Enhancements](#-suggest-enhancements)
- [📖 Updating / Improving Documentation](#-updating--improving-documentation)
- [🧑‍💻 Contributing Code](#-contributing-code)
- - [Setup Development Environment](#setting-up-the-development-environment)
+ - [Environment Setup](#environment-setup)
- [Writing Steps](#writing-steps)
- [Writing Context Providers](#writing-context-providers)
-- [📐 Continue Architecture](#-continue-architecture)
- - [Continue VS Code Client](#continue-vs-code-client)
- - [Continue IDE Websockets Protocol](#continue-ide-websockets-protocol)
- - [Continue GUI Websockets Protocol](#continue-gui-websockets-protocol)
-- [❇️ Core Concepts](#%EF%B8%8F-core-concepts)
- - [Step](#step)
- - [Autopilot](#autopilot)
- - [Observation](#observation)
- - [Policy](#policy)
+ - [📐 Continue Architecture](#-continue-architecture)
+ - [Continue VS Code Client](#continue-vs-code-client)
+ - [Continue IDE Websockets Protocol](#continue-ide-websockets-protocol)
+ - [Continue GUI Websockets Protocol](#continue-gui-websockets-protocol)
+ - [❇️ Core Concepts](#️-core-concepts)
+ - [`Step`](#step)
+ - [`Autopilot`](#autopilot)
+ - [`Observation`](#observation)
+ - [`Policy`](#policy)
# ❤️ Ways to Contribute
@@ -50,17 +52,28 @@ Continue is continuously improving, but a feature isn't complete until it is ref
## 🧑‍💻 Contributing Code
-### Setting up the Development Environment
+### Environment Setup
-There are different levels of setup necessary depending on which part of Continue you are developing. For all of them, first clone the repo:
+VSCode is assumed for development as Continue is primarily a VSCode tool at the moment. Most of the setup and running is automated through VSCode tasks and launch configurations.
-```bash
-git clone https://github.com/continuedev/continue
-```
+1. Clone and open in VSCode the Continue repo `https://github.com/continuedev/continue`
-If editing only the server (`/continuedev` directory), see the directions in [continuedev/README.md](./continuedev/README.md) to set up the Python server. Once it is running on localhost:8001, you can connect your existing VS Code extension by going to VS Code settings, searching for "Continue: Server URL", and setting it to "http://localhost:8001".
+2. Open VSCode command pallet (`cmd+shift+p`) and select `Tasks: Run Task` and then select `install-all-dependencies`
-If editing the VS Code extension (`/extension` directory) or GUI (`/extension/react-app`), you can follow the instructions in [`extension/DEV_README.md`](./extension/DEV_README.md) to set up the VS Code extension and GUI in development mode.
+3. Start debugging:
+ 1. Switch to Run and Debug view
+ 2. Select `Server + Extension (VSCode)` from drop down
+ 3. Hit play button
+ 4. This will start both the server and the extension in debug mode and open a new VSCode window with continue extension
+ 1. I call the VSCode window with the extension the *Host VSCode*
+ 2. The window you started debugging from is reffered to as the *Main VSCode*
+ 5. Notice 2 debug sessions are running, one for the server and one for the extension, you can also set breakpoints in both
+
+4. Lets try using breakpoints:
+ 1. *In Main VSCode*:
+ 1. Search for `class IdeProtocolServer` and set a breakpoint in `handle_json`, this is the method invoked on every message received from the extension related to selection changes, file opens etc
+ 2. Search for a method `sendHighlightedCode` and set a breakpoint in it, it is invoked on every selection change on the extension side
+ 2. *In Host VSCode*: Select part of the `example.ts` file, your breakpoint should be hit. If you hit play at this point (or F5) you should see the original breakpoint hit again - congratulations, you debugged an end to end interaction from the extension to the server!
### Writing Steps
diff --git a/extension/DEV_README.md b/extension/CONTRIBUTING.md
index 3ad9cf68..953b5e48 100644
--- a/extension/DEV_README.md
+++ b/extension/CONTRIBUTING.md
@@ -6,25 +6,13 @@ This is the Continue VS Code Extension. Its primary jobs are
2. Open the Continue React app in a side panel. The React app's source code lives in the `react-app` directory. The panel is opened by the `continue.openContinueGUI` command, as defined in `src/commands.ts`.
3. Run a Continue server in the background, which connects to both the IDE protocol and the React app. The server is launched in `src/activation/environmentSetup.ts` by calling Python code that lives in `server/` (unless extension settings define a server URL other than localhost:65432, in which case the extension will just connect to that).
-## How to debug the VS Code Extension
+# How to run the extension
-1. Clone the Continue repo
+See [Environment Setup](../CONTRIBUTING.md#environment-setup)
-2. Open a VS Code window with the `continue` directory as your workspace
+# How to run and debug tests
-3. Package and then start the FastAPI server by following instructions outlined in the `Continue Server` section of the `continuedev/README.md`
-
-4. Open a VS Code window with the `extension` directory as your workspace
-
-5. Run `npm run package`
-
-6. Open `src/activation/activate.ts` file (or any TypeScript file)
-
-7. Press `F5` on your keyboard to start `Run and Debug` mode
-
-8. `cmd+shift+p` to look at developer console and select Continue commands
-
-9. Every time you make changes to the code, you need to run `npm run esbuild` unless you make changes inside of `react-app` and then you need to run `npm run build` from there
+After following the setup in [Environment Setup](../CONTRIBUTING.md#environment-setup) you can run `npm run test` in the command line or the `Server + Tests (VSCode)` launch configuration in VS Code to debug tests + server.
## Notes