223 lines
7.9 KiB
JSON
223 lines
7.9 KiB
JSON
{
|
|
"name": "vscode-tabby",
|
|
"publisher": "TabbyML",
|
|
"displayName": "Tabby",
|
|
"description": "Tabby is a self-hosted AI coding assistant that can suggest multi-line code or full functions in real-time.",
|
|
"homepage": "https://tabby.tabbyml.com/",
|
|
"repository": "https://github.com/TabbyML/tabby",
|
|
"bugs": "https://github.com/TabbyML/tabby/issues",
|
|
"license": "Apache-2.0",
|
|
"version": "0.6.1",
|
|
"keywords": [
|
|
"ai",
|
|
"autocomplete",
|
|
"code completion",
|
|
"copilot",
|
|
"intellisense",
|
|
"intellicode",
|
|
"snippets",
|
|
"tabby"
|
|
],
|
|
"icon": "assets/logo.png",
|
|
"engines": {
|
|
"vscode": "^1.82.0"
|
|
},
|
|
"categories": [
|
|
"Programming Languages",
|
|
"Machine Learning",
|
|
"Other"
|
|
],
|
|
"activationEvents": [
|
|
"onStartupFinished"
|
|
],
|
|
"main": "./dist/node/extension.js",
|
|
"browser": "./dist/web/extension.js",
|
|
"contributes": {
|
|
"commands": [
|
|
{
|
|
"command": "tabby.toggleInlineCompletionTriggerMode",
|
|
"title": "Tabby: Toggle Code Completion Trigger Mode (Automatic/Manual)"
|
|
},
|
|
{
|
|
"command": "tabby.inlineCompletion.trigger",
|
|
"title": "Tabby: Trigger Code Completion Manually"
|
|
},
|
|
{
|
|
"command": "tabby.setApiEndpoint",
|
|
"title": "Tabby: Specify API Endpoint of Tabby"
|
|
},
|
|
{
|
|
"command": "tabby.openSettings",
|
|
"title": "Tabby: Open Settings"
|
|
},
|
|
{
|
|
"command": "tabby.openTabbyAgentSettings",
|
|
"title": "Tabby: Open Tabby Agent Settings"
|
|
},
|
|
{
|
|
"command": "tabby.gettingStarted",
|
|
"title": "Tabby: Getting Started"
|
|
}
|
|
],
|
|
"menus": {
|
|
"commandPalette": [
|
|
{
|
|
"command": "tabby.inlineCompletion.trigger",
|
|
"when": "config.tabby.inlineCompletion.triggerMode === 'manual' && !editorHasSelection && !inlineSuggestionsVisible"
|
|
},
|
|
{
|
|
"command": "tabby.openTabbyAgentSettings",
|
|
"when": "!isWeb"
|
|
}
|
|
]
|
|
},
|
|
"walkthroughs": [
|
|
{
|
|
"id": "gettingStarted",
|
|
"title": "Getting Started with Tabby",
|
|
"description": "Set up your own AI coding assistant",
|
|
"steps": [
|
|
{
|
|
"id": "getTabbyServerReady",
|
|
"title": "Get Tabby Server Ready",
|
|
"description": "The Tabby VSCode extension requires a Tabby server to work. Please follow this guide to get your Tabby server ready.",
|
|
"media": {
|
|
"markdown": "assets/walkthroughs/server.md"
|
|
}
|
|
},
|
|
{
|
|
"id": "connectToTabbyServer",
|
|
"title": "Connect to Tabby Server",
|
|
"description": "Once your Tabby server is ready, specify the server API endpoint here. \n[Specify API Endpoint](command:tabby.setApiEndpoint)",
|
|
"media": {
|
|
"markdown": "assets/walkthroughs/setApiEndpoint.md"
|
|
}
|
|
},
|
|
{
|
|
"id": "codeCompletion",
|
|
"title": "Code Completion",
|
|
"description": "Tabby provides inline suggestions automatically by default, and you can accept suggestions by just pressing the Tab key.",
|
|
"media": {
|
|
"markdown": "assets/walkthroughs/codeCompletion.md"
|
|
}
|
|
},
|
|
{
|
|
"id": "commands",
|
|
"title": "Commands",
|
|
"description": "Type `>Tabby:` in command palette to list all Tabby commands. \n[Tabby commands](command:workbench.action.quickOpen?%5B%22%3ETabby%3A%22%5D)",
|
|
"media": {
|
|
"markdown": "assets/walkthroughs/commands.md"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"configuration": {
|
|
"title": "Tabby",
|
|
"properties": {
|
|
"tabby.api.endpoint": {
|
|
"type": "string",
|
|
"default": "",
|
|
"pattern": "(^$)|(^https?:\\/\\/\\S+$)",
|
|
"patternErrorMessage": "Please enter a validate http or https URL.",
|
|
"markdownDescription": "Specify API Endpoint of Tabby. \nIf leave empty, server endpoint in [Tabby Agent Settings](command:tabby.openTabbyAgentSettings) will be used."
|
|
},
|
|
"tabby.inlineCompletion.triggerMode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"automatic",
|
|
"manual"
|
|
],
|
|
"default": "automatic",
|
|
"description": "Select the code completion trigger mode.",
|
|
"enumDescriptions": [
|
|
"Automatic trigger when you stop typing",
|
|
"Manual trigger by pressing `Alt + \\`"
|
|
]
|
|
},
|
|
"tabby.keybindings": {
|
|
"type": "string",
|
|
"enum": [
|
|
"vscode-style",
|
|
"tabby-style"
|
|
],
|
|
"default": "vscode-style",
|
|
"markdownDescription": "Select the keybinding profile to accept shown inline completion. \n | | Next Line | Full Completion | Next Word | \n |:---:|:---:|:---:|:---:| \n | _vscode-style_ | - | Tab | Ctrl + RightArrow | \n | _tabby-style_ <br/> _(experimental)_ | Tab | Ctrl + Tab | Ctrl + RightArrow | \n"
|
|
},
|
|
"tabby.usage.anonymousUsageTracking": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Disable anonymous usage tracking."
|
|
}
|
|
}
|
|
},
|
|
"keybindings": [
|
|
{
|
|
"key": "alt+\\",
|
|
"command": "tabby.inlineCompletion.trigger",
|
|
"when": "config.tabby.inlineCompletion.triggerMode === 'manual' && editorTextFocus && !editorHasSelection && !inlineSuggestionsVisible"
|
|
},
|
|
{
|
|
"command": "tabby.inlineCompletion.accept",
|
|
"key": "tab",
|
|
"when": "config.tabby.keybindings === 'vscode-style' && inlineSuggestionVisible && !editorReadonly && !suggestWidgetVisible && !editorHoverFocused && !editorTabMovesFocus && inlineSuggestionHasIndentationLessThanTabSize"
|
|
},
|
|
{
|
|
"command": "tabby.inlineCompletion.acceptNextWord",
|
|
"key": "ctrl+right",
|
|
"when": "config.tabby.keybindings === 'vscode-style' && inlineSuggestionVisible && !editorReadonly && !suggestWidgetVisible"
|
|
},
|
|
{
|
|
"command": "tabby.inlineCompletion.accept",
|
|
"key": "ctrl+tab",
|
|
"when": "config.tabby.keybindings === 'tabby-style' && inlineSuggestionVisible && !editorReadonly && !suggestWidgetVisible"
|
|
},
|
|
{
|
|
"command": "tabby.inlineCompletion.acceptNextWord",
|
|
"key": "ctrl+right",
|
|
"when": "config.tabby.keybindings === 'tabby-style' && inlineSuggestionVisible && !editorReadonly && !suggestWidgetVisible"
|
|
},
|
|
{
|
|
"command": "tabby.inlineCompletion.acceptNextLine",
|
|
"key": "tab",
|
|
"when": "config.tabby.keybindings === 'tabby-style' && inlineSuggestionVisible && !editorReadonly && !suggestWidgetVisible && !editorHoverFocused && !editorTabMovesFocus"
|
|
}
|
|
]
|
|
},
|
|
"scripts": {
|
|
"prebuild": "cd ../tabby-agent && yarn build",
|
|
"build": "tsup --minify --treeshake smallest",
|
|
"watch": "tsup --sourcemap --watch ./ --ignore-watch ./dist --watch ../tabby-agent/dist",
|
|
"dev": "code --extensionDevelopmentPath=$PWD --disable-extensions && yarn watch",
|
|
"dev:browser": "vscode-test-web --extensionDevelopmentPath=$PWD --browserType=chromium --port=3000 && yarn watch",
|
|
"lint": "prettier --write .",
|
|
"lint:check": "prettier --check .",
|
|
"vscode:prepackage": "yarn build",
|
|
"vscode:package": "vsce package --no-dependencies",
|
|
"vscode:prepublish": "yarn build",
|
|
"vscode:publish": "vsce publish --no-dependencies"
|
|
},
|
|
"devDependencies": {
|
|
"@types/glob": "^7.2.0",
|
|
"@types/mocha": "^10.0.1",
|
|
"@types/node": "18.x",
|
|
"@types/vscode": "^1.82.0",
|
|
"@typescript-eslint/eslint-plugin": "^5.31.0",
|
|
"@typescript-eslint/parser": "^5.31.0",
|
|
"@vscode/test-electron": "^2.1.5",
|
|
"@vscode/test-web": "^0.0.44",
|
|
"@vscode/vsce": "^2.15.0",
|
|
"assert": "^2.0.0",
|
|
"esbuild-plugin-polyfill-node": "^0.3.0",
|
|
"eslint": "^8.20.0",
|
|
"glob": "^8.0.3",
|
|
"prettier": "^3.0.0",
|
|
"tsup": "^7.1.0",
|
|
"typescript": "^4.7.4"
|
|
},
|
|
"dependencies": {
|
|
"@xstate/fsm": "^2.0.1",
|
|
"tabby-agent": "0.4.0-dev"
|
|
}
|
|
}
|