Custom copilot for autocomplete functionality in your code with custom llm endpoints.
- Code Completion
- Chat with LLM after sending files
Instructions for setting up the developer workspace available at https://code.visualstudio.com/api/get-started/your-first-extension.
Instructions at Flask webserver readme
Include if your extension adds any VS Code settings through the contributes.configuration
extension point.
For example:
This extension contributes the following settings:
autocompleteModel
: LLM_MODEL_NAME,uploadAPIURL
: UPLOAD_API_ENDPOINT,autocompleteAPIURL
: AUTOCOMPLETE_API_ENDPOINT,autocompleteDelay
: AUTOCOMPLETE_DELAY, // in millisecondsautocompleteInputPromptSize
: AUTOCOMPLETE_MAX_INPUT_PROMPT_SIZE, // doubled when using fill_in_middle modelsautocompleteInputMaxNewTokens
: AUTOCOMPLETE_MAX_OUTPUT_TOKEN_SIZE
package.json
- Extension manifest file declaring extension and command.- The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
src/extension.ts
- Extension source code.- The file exports one function,
activate
, which is called the very first time your extension is activated (in this case by executing the command). Inside theactivate
function we callregisterCommand
. - We pass the function containing the implementation of the command as the second parameter to
registerCommand
.
- The file exports one function,
.vscode/launch.json
- Config for launching and debugging the vscode extension.vscode/tasks.json
- COnfig for build task that compiles TypeScript
- Press
F5
to open a new window with your extension loaded. - Run your command from the command palette by pressing (
Ctrl+Shift+P
orCmd+Shift+P
on Mac) and typingHello World
. - Set breakpoints in your code inside
src/extension.ts
to debug your extension. - Find output from your extension in the debug console.
- You can relaunch the extension from the debug toolbar after changing code in
src/extension.ts
. - You can also reload (
Ctrl+R
orCmd+R
on Mac) the VS Code window with your extension to load your changes.
- Install the Extension Test Runner
- Run the "watch" task via the Tasks: Run Task command. Make sure this is running, or tests might not be discovered.
- Open the Testing view from the activity bar and click the Run Test" button, or use the hotkey
Ctrl/Cmd + ; A
- See the output of the test result in the Test Results view.
- Make changes to
src/test/extension.test.ts
or create new test files inside thetest
folder.- The provided test runner will only consider files matching the name pattern
**.test.ts
. - You can create folders inside the
test
folder to structure your tests any way you want.
- The provided test runner will only consider files matching the name pattern
- Extension Guidelines
- Extension UX Guidelines
- Extension Anatomy
- Extension Manifest package.json
- Reduce the extension size and improve the startup time by bundling your extension.
- Publishing extension on the VS Code extension marketplace.
- Automated builds & Continuous Integration.
- Full set of the vscode API in
node_modules/@types/vscode/index.d.ts
.