{
    "name": "pascal",
    "displayName": "Pascal",
    "description": "Pascal language support for Visual Studio Code",
    "version": "10.0.0",
    "publisher": "alefragnani",
    "galleryBanner": {
        "color": "#4682B4",
        "theme": "dark"
    },
    "engines": {
        "vscode": "^1.74.0"
    },
    "categories": [
        "Programming Languages",
        "Snippets",
        "Other"
    ],
    "keywords": [
        "pascal",
        "delphi",
        "freepascal",
        "lazarus",
        "multi-root ready"
    ],
    "activationEvents": [
        "onStartupFinished"
    ],
    "capabilities": {
        "virtualWorkspaces": {
            "supported": "limited",
            "description": "In virtual workspaces, code navigation features are not supported."
        },
        "untrustedWorkspaces": {
            "supported": "limited",
            "description": "Trust is required to be able to use code navigation features in this workspace.",
            "restrictedConfigurations": [
                "pascal.tags.autoGenerate",
                "pascal.codeNavigation"
            ]
        }
    },
    "main": "./dist/extension-node.js",
    "browser": "./dist/extension-web.js",
    "l10n": "./l10n",
    "icon": "images/icon.png",
    "license": "SEE LICENSE IN LICENSE.md",
    "homepage": "https://github.com/alefragnani/vscode-language-pascal/blob/master/README.md",
    "repository": {
        "type": "git",
        "url": "https://github.com/alefragnani/vscode-language-pascal.git"
    },
    "bugs": {
        "url": "https://github.com/alefragnani/vscode-language-pascal/issues"
    },
    "sponsor": {
        "url": "https://github.com/sponsors/alefragnani"
    },
    "contributes": {
        "languages": [
            {
                "id": "pascal",
                "aliases": [
                    "Pascal",
                    "pascal"
                ],
                "extensions": [
                    ".pas",
                    ".p",
                    ".dfm",
                    ".fmx",
                    ".dpr",
                    ".dpk",
                    ".lfm",
                    ".dpr",
                    ".lpr",
                    ".ppr"
                ],
                "configuration": "./pascal.configuration.json"
            }
        ],
        "grammars": [
            {
                "language": "pascal",
                "scopeName": "source.pascal",
                "path": "./syntaxes/pascal.tmLanguage"
            }
        ],
        "snippets": [
            {
                "language": "pascal",
                "path": "./snippets/pascal.json"
            }
        ],
        "commands": [
            {
                "command": "pascal.newFile",
                "title": "%pascal.commands.newFile.title%"
            },
            {
                "command": "pascal.newClassFile",
                "title": "%pascal.commands.newClassFile.title%"
            },
            {
                "command": "pascal.newInterfaceFile",
                "title": "%pascal.commands.newInterfaceFile.title%"
            },
            {
                "command": "pascal.newProgramFile",
                "title": "%pascal.commands.newProgramFile.title%"
            },
            {
                "command": "pascal.generateTags",
                "title": "%pascal.commands.generateTags.title%",
                "enablement": "isWorkspaceTrusted && !isWeb"
            },
            {
                "command": "pascal.updateTags",
                "title": "%pascal.commands.updateTags.title%",
                "enablement": "isWorkspaceTrusted && !isWeb"
            },
            {
                "command": "pascal.whatsNew",
                "title": "%pascal.commands.whatsNew.title%"
            },
            {
                "command": "_pascal.whatsNewContextMenu",
                "title": "%pascal.commands.whatsNewContextMenu.title%"
            },
            {
                "command": "_pascal.installDelphiThemes",
                "title": "%pascal.commands.installDelphiThemes.title%"
            },
            {
                "command": "_pascal.installDelphiKeymap",
                "title": "%pascal.commands.installDelphiKeymap.title%"
            },
            {
                "command": "_pascal.installPascalFormatter",
                "title": "%pascal.commands.installPascalFormatter.title%"
            }
        ],
        "menus": {
            "commandPalette": [
                {
                    "command": "_pascal.whatsNewContextMenu",
                    "when": "false"
                },
                {
                    "command": "_pascal.installDelphiThemes",
                    "when": "false"
                },
                {
                    "command": "_pascal.installDelphiKeymap",
                    "when": "false"
                },
                {
                    "command": "_pascal.installPascalFormatter",
                    "when": "false"
                }
            ],
            "extension/context": [
                {
                    "command": "_pascal.whatsNewContextMenu",
                    "group": "pascal",
                    "when": "extension == alefragnani.pascal && extensionStatus == installed"
                }
            ],
            "file/newFile": [
                {
                    "command": "pascal.newFile"
                },
                {
                    "command": "pascal.newClassFile"
                },
                {
                    "command": "pascal.newInterfaceFile"
                },
                {
                    "command": "pascal.newProgramFile"
                }
            ]
        },
        "configuration": {
            "type": "object",
            "title": "%pascal.configuration.title%",
            "properties": {
                "pascal.tags.autoGenerate": {
                    "type": "boolean",
                    "default": true,
                    "description": "%pascal.configuration.tags.autoGenerate.description%"
                },
                "pascal.codeNavigation": {
                    "type": "string",
                    "default": "workspace",
                    "scope": "resource",
                    "description": "%pascal.configuration.codeNavigation.description%",
                    "enum": [
                        "workspace",
                        "file"
                    ]
                }
            }
        },
        "walkthroughs": [
            {
                "id": "pascalWelcome",
                "title": "%pascal.walkthroughs.title%",
                "description": "%pascal.walkthroughs.description%",
                "steps": [
                    {
                        "id": "syntaxHighlighting",
                        "title": "%pascal.walkthroughs.syntaxHighlighting.title%",
                        "description": "%pascal.walkthroughs.syntaxHighlighting.description%",
                        "media": {
                            "markdown": "walkthrough/syntaxHighlighting.md"
                        }
                    },
                    {
                        "id": "snippets",
                        "title": "%pascal.walkthroughs.snippets.title%",
                        "description": "%pascal.walkthroughs.snippets.description%",
                        "media": {
                            "markdown": "walkthrough/snippets.md"
                        }
                    },
                    {
                        "id": "formatter",
                        "title": "%pascal.walkthroughs.formatter.title%",
                        "description": "%pascal.walkthroughs.formatter.description%",
                        "media": {
                            "markdown": "walkthrough/formatter.md"
                        },
                        "when": "!isWeb"
                    },
                    {
                        "id": "codeNavigation",
                        "title": "%pascal.walkthroughs.codeNavigation.title%",
                        "description": "%pascal.walkthroughs.codeNavigation.description%",
                        "media": {
                            "markdown": "walkthrough/codeNavigation.md"
                        },
                        "when": "!isWeb"
                    },
                    {
                        "id": "delphiLike",
                        "title": "%pascal.walkthroughs.delphiLike.title%",
                        "description": "%pascal.walkthroughs.delphiLike.description%",
                        "media": {
                            "markdown": "walkthrough/delphiLike.md"
                        }
                    }
                ]
            }
        ]
    },
    "eslintConfig": {
        "extends": [
            "vscode-ext"
        ]
    },
    "scripts": {
        "build": "webpack --mode development",
        "watch": "webpack --watch --mode development",
        "vscode:prepublish": "webpack --mode production",
        "webpack": "webpack --mode development",
        "webpack-dev": "webpack --mode development --watch",
        "compile": "tsc -p ./",
        "lint": "eslint -c package.json --ext .ts src vscode-whats-new",
        "pretest": "npm run compile && npm run lint",
        "test-compile": "tsc -p ./ && npm run webpack",
        "just-test": "node ./out/src/test/runTest.js",
        "test": "npm run test-compile && npm run just-test"
    },
    "devDependencies": {
        "@types/glob": "^7.1.4",
        "@types/mocha": "^9.0.0",
        "@types/node": "^18.17.0",
        "@types/vscode": "^1.73.0",
        "@typescript-eslint/eslint-plugin": "^6.0.0",
        "@typescript-eslint/parser": "^6.0.0",
        "@vscode/test-electron": "^2.5.2",
        "eslint": "^8.1.0",
        "eslint-config-vscode-ext": "^1.1.0",
        "glob": "^7.1.7",
        "mocha": "^11.1.0",
        "terser-webpack-plugin": "^5.2.4",
        "ts-loader": "^9.2.5",
        "typescript": "^5.3.3",
        "webpack": "^5.94.0",
        "webpack-cli": "^4.8.0"
    }
}
