Created
October 4, 2025 01:16
-
-
Save Jaid/1196746806dc7be1eaa7783e4d7b388a to your computer and use it in GitHub Desktop.
VSCode extension manifest JSON schema
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://json-schema.org/draft-07/schema", | |
| "$comment": "Created with Gemini: https://aistudio.google.com/prompts/1qOHlwgopIioc0DmKrSkmMkMRDZfKVzMB", | |
| "title": "VSCode extensions manifest", | |
| "description": "Schema for the package.json file of a Visual Studio Code extension.", | |
| "type": "object", | |
| "required": [ | |
| "name", | |
| "publisher", | |
| "version", | |
| "engines" | |
| ], | |
| "properties": { | |
| "name": { | |
| "description": "The name of the extension. It must be unique on the marketplace, in the form of `^[a-z0-9][a-z0-9-]*$`.", | |
| "type": "string", | |
| "pattern": "^[a-z0-9][a-z0-9-]*$" | |
| }, | |
| "displayName": { | |
| "description": "The display name for the extension used in the VS Code UI.", | |
| "type": "string" | |
| }, | |
| "publisher": { | |
| "description": "The publisher of the extension. It must be unique on the marketplace, in the form of `^[a-z0-9][a-z0-9-]*$`.", | |
| "type": "string", | |
| "pattern": "^[a-z0-9][a-z0-9-]*$" | |
| }, | |
| "version": { | |
| "description": "The version of the extension in semantic versioning format.", | |
| "type": "string", | |
| "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$" | |
| }, | |
| "private": { | |
| "description": "Set to true if the extension is not intended to be published to the marketplace.", | |
| "type": "boolean" | |
| }, | |
| "engines": { | |
| "description": "Specifies the VS Code engine version that the extension is compatible with.", | |
| "type": "object", | |
| "properties": { | |
| "vscode": { | |
| "description": "A semver-compatible string for the VS Code engine. e.g. ^1.80.0", | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "vscode" | |
| ] | |
| }, | |
| "description": { | |
| "description": "A brief description of the extension.", | |
| "type": "string" | |
| }, | |
| "author": { | |
| "description": "The author of the extension.", | |
| "oneOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string" | |
| }, | |
| "email": { | |
| "type": "string", | |
| "format": "email" | |
| } | |
| }, | |
| "required": [ | |
| "name" | |
| ] | |
| } | |
| ] | |
| }, | |
| "categories": { | |
| "description": "Categories used by VS Code to group extensions.", | |
| "type": "array", | |
| "items": { | |
| "type": "string", | |
| "enum": [ | |
| "Programming Languages", | |
| "Snippets", | |
| "Linters", | |
| "Themes", | |
| "Debuggers", | |
| "Formatters", | |
| "Keymaps", | |
| "SCM Providers", | |
| "Other", | |
| "Extension Packs", | |
| "Language Packs", | |
| "Data Science", | |
| "Machine Learning", | |
| "Visualization", | |
| "Notebooks", | |
| "Education", | |
| "Testing" | |
| ] | |
| } | |
| }, | |
| "keywords": { | |
| "description": "Keywords for the marketplace.", | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "main": { | |
| "description": "The path to the extension's entry point file for Node.js environments.", | |
| "type": "string" | |
| }, | |
| "browser": { | |
| "description": "The path to the extension's entry point file for web environments.", | |
| "type": "string" | |
| }, | |
| "icon": { | |
| "description": "Path to the extension's icon.", | |
| "type": "string" | |
| }, | |
| "preview": { | |
| "description": "Set to true if the extension is in preview.", | |
| "type": "boolean" | |
| }, | |
| "bugs": { | |
| "description": "Link to the extension's issue tracker.", | |
| "oneOf": [ | |
| { | |
| "type": "string", | |
| "format": "uri" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "url": { | |
| "type": "string", | |
| "format": "uri" | |
| }, | |
| "email": { | |
| "type": "string", | |
| "format": "email" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "repository": { | |
| "description": "The extension's source code repository.", | |
| "oneOf": [ | |
| { | |
| "type": "string", | |
| "format": "uri" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string" | |
| }, | |
| "url": { | |
| "type": "string", | |
| "format": "uri" | |
| } | |
| }, | |
| "required": [ | |
| "type", | |
| "url" | |
| ] | |
| } | |
| ] | |
| }, | |
| "homepage": { | |
| "description": "The extension's homepage.", | |
| "type": "string", | |
| "format": "uri" | |
| }, | |
| "license": { | |
| "description": "The license of the extension.", | |
| "type": "string" | |
| }, | |
| "activationEvents": { | |
| "description": "An array of events that will trigger the extension's activation. E.g. 'onCommand:myCommand', 'onLanguage:typescript', '*'.", | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "extensionDependencies": { | |
| "description": "A list of extensions that this extension depends on.", | |
| "type": "array", | |
| "items": { | |
| "type": "string", | |
| "pattern": "^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$" | |
| } | |
| }, | |
| "extensionPack": { | |
| "description": "A list of extensions that will be installed when this extension is installed.", | |
| "type": "array", | |
| "items": { | |
| "type": "string", | |
| "pattern": "^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$" | |
| } | |
| }, | |
| "extensionKind": { | |
| "description": "Describes the environment where the extension can run. Can be 'ui', 'workspace', or 'web'.", | |
| "oneOf": [ | |
| { | |
| "type": "string", | |
| "enum": [ | |
| "ui", | |
| "workspace", | |
| "web" | |
| ] | |
| }, | |
| { | |
| "type": "array", | |
| "items": { | |
| "type": "string", | |
| "enum": [ | |
| "ui", | |
| "workspace", | |
| "web" | |
| ] | |
| } | |
| } | |
| ] | |
| }, | |
| "enabledApiProposals": { | |
| "description": "A list of proposed APIs that this extension uses.", | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "api": { | |
| "description": "Indicates whether the extension uses proposed APIs.", | |
| "type": "string", | |
| "enum": [ | |
| "none", | |
| "proposed" | |
| ] | |
| }, | |
| "sponsor": { | |
| "description": "Sponsorship details for the extension.", | |
| "type": "object", | |
| "properties": { | |
| "url": { | |
| "type": "string", | |
| "format": "uri" | |
| } | |
| }, | |
| "required": [ | |
| "url" | |
| ] | |
| }, | |
| "contributes": { | |
| "description": "All of the contributions that the extension makes to VS Code.", | |
| "type": "object", | |
| "properties": { | |
| "commands": { | |
| "description": "Contributes commands to the command palette.", | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/command" | |
| } | |
| }, | |
| "configuration": { | |
| "description": "Contributes configuration settings.", | |
| "oneOf": [ | |
| { | |
| "$ref": "#/definitions/configuration" | |
| }, | |
| { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/configuration" | |
| } | |
| } | |
| ] | |
| }, | |
| "menus": { | |
| "description": "Contributes menu items to the editor.", | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/menuItem" | |
| } | |
| } | |
| }, | |
| "keybindings": { | |
| "description": "Contributes keybindings.", | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/keybinding" | |
| } | |
| }, | |
| "languages": { | |
| "description": "Contributes language definitions.", | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/language" | |
| } | |
| }, | |
| "grammars": { | |
| "description": "Contributes TextMate grammars.", | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/grammar" | |
| } | |
| }, | |
| "themes": { | |
| "description": "Contributes color themes.", | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/theme" | |
| } | |
| }, | |
| "snippets": { | |
| "description": "Contributes snippets.", | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/snippet" | |
| } | |
| }, | |
| "views": { | |
| "description": "Contributes views to the editor.", | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/view" | |
| } | |
| } | |
| }, | |
| "viewsContainers": { | |
| "description": "Contributes view containers.", | |
| "type": "object", | |
| "properties": { | |
| "activitybar": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/viewContainer" | |
| } | |
| }, | |
| "panel": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/definitions/viewContainer" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "definitions": { | |
| "l10n-string": { | |
| "type": "string", | |
| "description": "A localizable string, which can be a direct string or a key in the format '%key%' for localization.", | |
| "pattern": "^(%[^%]+%|[^%].*)$" | |
| }, | |
| "icon": { | |
| "description": "An icon can be a string path to an SVG or a themeable object with light and dark paths.", | |
| "oneOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "light": { | |
| "type": "string" | |
| }, | |
| "dark": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "light", | |
| "dark" | |
| ] | |
| } | |
| ] | |
| }, | |
| "command": { | |
| "type": "object", | |
| "properties": { | |
| "command": { | |
| "description": "Identifier of the command to execute.", | |
| "type": "string" | |
| }, | |
| "title": { | |
| "description": "Title by which the command is represented in the UI.", | |
| "$ref": "#/definitions/l10n-string" | |
| }, | |
| "category": { | |
| "description": "Category string by which the command is grouped in the UI.", | |
| "$ref": "#/definitions/l10n-string" | |
| }, | |
| "icon": { | |
| "description": "Icon for the command.", | |
| "$ref": "#/definitions/icon" | |
| } | |
| }, | |
| "required": [ | |
| "command", | |
| "title" | |
| ] | |
| }, | |
| "configuration": { | |
| "type": "object", | |
| "properties": { | |
| "title": { | |
| "type": "string", | |
| "description": "The title of the configuration section." | |
| }, | |
| "properties": { | |
| "type": "object", | |
| "description": "The configuration properties.", | |
| "additionalProperties": { | |
| "$ref": "https://json-schema.org/draft-07/schema#" | |
| } | |
| } | |
| } | |
| }, | |
| "menuItem": { | |
| "type": "object", | |
| "properties": { | |
| "command": { | |
| "description": "Identifier of the command to execute.", | |
| "type": "string" | |
| }, | |
| "alt": { | |
| "description": "Identifier of an alternative command to execute.", | |
| "type": "string" | |
| }, | |
| "when": { | |
| "description": "Condition for when the menu item should be shown.", | |
| "type": "string" | |
| }, | |
| "group": { | |
| "description": "Group into which this command is sorted.", | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "command" | |
| ] | |
| }, | |
| "keybinding": { | |
| "type": "object", | |
| "properties": { | |
| "command": { | |
| "type": "string" | |
| }, | |
| "key": { | |
| "type": "string" | |
| }, | |
| "mac": { | |
| "type": "string" | |
| }, | |
| "linux": { | |
| "type": "string" | |
| }, | |
| "win": { | |
| "type": "string" | |
| }, | |
| "when": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "command", | |
| "key" | |
| ] | |
| }, | |
| "language": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string" | |
| }, | |
| "aliases": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "extensions": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "configuration": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "id" | |
| ] | |
| }, | |
| "grammar": { | |
| "type": "object", | |
| "properties": { | |
| "language": { | |
| "type": "string" | |
| }, | |
| "scopeName": { | |
| "type": "string" | |
| }, | |
| "path": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "scopeName", | |
| "path" | |
| ] | |
| }, | |
| "theme": { | |
| "type": "object", | |
| "properties": { | |
| "label": { | |
| "type": "string" | |
| }, | |
| "uiTheme": { | |
| "type": "string", | |
| "enum": [ | |
| "vs", | |
| "vs-dark", | |
| "hc-black", | |
| "hc-light" | |
| ] | |
| }, | |
| "path": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "label", | |
| "path" | |
| ] | |
| }, | |
| "snippet": { | |
| "type": "object", | |
| "properties": { | |
| "language": { | |
| "type": "string" | |
| }, | |
| "path": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "language", | |
| "path" | |
| ] | |
| }, | |
| "view": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "when": { | |
| "type": "string" | |
| }, | |
| "icon": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name" | |
| ] | |
| }, | |
| "viewContainer": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string" | |
| }, | |
| "title": { | |
| "type": "string" | |
| }, | |
| "icon": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "title" | |
| ] | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment