{
  "name": "slint",
  "displayName": "Slint",
  "description": "Slint language support, featuring auto-completion, go-to definition, refactoring, syntax coloration, and a live preview and editing of Slint GUIs. Slint is a lightweight cross-platform native GUI framework for Rust, C++, JavaScript, and Python.",
  "keywords": [
    "Slint",
    "GUI",
    "UI",
    "HMI",
    "Qt/QML Alternative",
    "live preview",
    "drag-and-drop editor"
  ],
  "version": "1.16.0",
  "publisher": "Slint",
  "icon": "extension-logo.png",
  "license": "GPL-3.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/slint-ui/slint"
  },
  "engines": {
    "vscode": "^1.82.0"
  },
  "categories": [
    "Programming Languages"
  ],
  "qna": "https://github.com/slint-ui/slint/discussions/categories/q-a",
  "activationEvents": [
    "onLanguage:rust",
    "onWebviewPanel:slint-preview",
    "workspaceContains:{**/CMakeLists.txt,**/Cargo.toml,**/*.slint}"
  ],
  "main": "./out/extension.js",
  "browser": "./out/browser.js",
  "extensionKind": [
    "workspace",
    "ui"
  ],
  "contributes": {
    "languages": [
      {
        "id": "slint",
        "aliases": [
          "Slint"
        ],
        "extensions": [
          ".slint",
          ".60"
        ],
        "configuration": "language-configuration.json",
        "icon": {
          "light": "slint-file-icon.svg",
          "dark": "slint-file-icon.svg"
        }
      }
    ],
    "grammars": [
      {
        "language": "slint",
        "scopeName": "source.slint",
        "path": "slint.tmLanguage.json"
      },
      {
        "injectTo": [
          "source.rust"
        ],
        "scopeName": "source.rust.slint",
        "path": "./slint.injection.json",
        "embeddedLanguages": {
          "source.slint": "slint"
        }
      },
      {
        "scopeName": "markdown.slint.codeblock",
        "path": "./slint.markdown-injection.json",
        "injectTo": [
          "text.html.markdown"
        ],
        "embeddedLanguages": {
          "meta.embedded.block.slint": "slint"
        }
      }
    ],
    "commands": [
      {
        "command": "slint.showPreview",
        "title": "Show Preview",
        "category": "Slint",
        "icon": "$(preview)"
      },
      {
        "command": "slint.reload",
        "title": "Restart server",
        "category": "Slint",
        "icon": "$(debug-restart)"
      },
      {
        "command": "slint.newProject",
        "title": "Create New Project from Template",
        "category": "Slint"
      }
    ],
    "menus": {
      "commandPalette": [
        {
          "command": "slint.showPreview",
          "when": "editorLangId == slint"
        },
        {
          "command": "slint.reload"
        },
        {
          "command": "slint.newProject",
          "when": "!isWeb"
        }
      ],
      "editor/title": [
        {
          "command": "slint.showPreview",
          "when": "resourceLangId == slint",
          "group": "navigation"
        }
      ]
    },
    "configuration": {
      "type": "object",
      "title": "Slint",
      "properties": {
        "slint.lsp-args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The command line arguments passed to the Slint LSP server"
        },
        "slint.preview.hide_ui": {
          "type": "boolean",
          "default": false,
          "description": "Hide the toolbar of the preview"
        },
        "slint.preview.style": {
          "type": "string",
          "description": "The default style to be used for the preview (eg: 'fluent', 'material', or 'native')"
        },
        "slint.preview.providedByEditor": {
          "type": "boolean",
          "default": false,
          "description": "Instead of letting the Language Server display the preview in a native window, show the preview in an editor tab using web-assembly.  This has no effect for the web extension where the preview is always provided by the editor."
        },
        "slint.includePaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of paths in which the `import` statement and `@image-url` are looked up. Relative paths are resolved against the workspace root."
        },
        "slint.libraryPaths": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z][a-zA-Z0-9-_]*$": {
              "type": "string"
            }
          },
          "description": "Map of paths in which the `import` statement for `@mylibrary` imports are looked up. This is an object such as `{\"mylibrary\": \"/path/to/library\"}`. Relative paths are resolved against the workspace root."
        },
        "slint.lspBinaryPath": {
          "type": "string",
          "default": "",
          "description": "The path to the slint-lsp. Leave empty to use the packaged LSP"
        }
      }
    },
    "snippets": [
      {
        "language": "slint",
        "path": "./snippets/slint.json"
      }
    ],
    "walkthroughs": [
      {
        "id": "slint.welcomeWalkthrough",
        "title": "Getting Started with Slint",
        "description": "Dive into VSCode's rich Slint development experience",
        "steps": [
          {
            "id": "create_slint_file",
            "title": "Create a .slint File",
            "description": "[Open](command:toSide:workbench.action.files.openFile) or [create](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22slint%22%7D) a `.slint` file. Be sure to save it with the \".slint\" extension, such as \"helloworld.slint\". \n[Create a .slint File](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22slint%22%7D)",
            "media": {
              "markdown": "static/walkthroughs/welcome/create_slint_file.md"
            }
          },
          {
            "id": "live_preview",
            "title": "Live Preview your UI",
            "description": "Click on $(play) Show Preview above any component in your editor showing a .slint file to a preview of your user interface. Keep the preview open: It updates as you type.",
            "media": {
              "image": "static/walkthroughs/welcome/show_preview.png",
              "altText": "live preview in action"
            },
            "completionEvents": [
              "onCommand:slint.showPreview"
            ]
          },
          {
            "id": "get_help",
            "title": "Learn More",
            "description": "Well done! You've completed Getting Started with Slint.",
            "media": {
              "markdown": "static/walkthroughs/welcome/get_help.md"
            }
          }
        ]
      }
    ]
  },
  "scripts": {
    "vscode:prepublish": "pnpm build:wasm_lsp-release && pnpm compile-production && shx echo \"GPL-3.0-only OR LicenseRef-Slint-Software-3.0\" > LICENSE.txt",
    "build:lsp": "cargo build -p slint-lsp",
    "build:lsp-release": "cargo build --release -p slint-lsp",
    "build:wasm_lsp": "shx pwd | xargs -I {} wasm-pack build --dev --target web --no-pack ../../tools/lsp --out-dir {}/out -- --no-default-features --features backend-winit,renderer-femtovg,preview",
    "build:wasm_lsp-release": "shx pwd | xargs -I {} wasm-pack build --release --target web --no-pack ../../tools/lsp --out-dir {}/out -- --no-default-features --features backend-winit,renderer-femtovg,preview",
    "compile": "node ./esbuild.js",
    "compile-production": "node ./esbuild.js --production",
    "local-package": "shx mkdir -p bin && shx cp ../../target/debug/slint-lsp* bin/ && pnpm dlx @vscode/vsce package --no-dependencies",
    "watch": "tsc -watch -p ./",
    "pretest": "pnpm compile && pnpm check",
    "check": "biome check",
    "format": "biome format",
    "format:fix": "biome format --write",
    "lint": "biome lint",
    "lint:fix": "biome lint --fix",
    "test_grammar": "vscode-tmgrammar-test \"tests/grammar/*.slint\"",
    "type-check": "tsc --noEmit -p src/tsconfig.json",
    "test": "node ./out/test/runTest.js",
    "clean": "shx rm -rf out bin LICENSE.txt slint-*.vsix"
  },
  "dependencies": {
    "fs-extra": "11.3.4",
    "simple-git": "3.36.0",
    "vscode-languageclient": "9.0.1",
    "vscode-languageserver": "9.0.1",
    "vscode-languageserver-types": "3.17.5"
  },
  "devDependencies": {
    "@biomejs/biome": "catalog:",
    "@types/fs-extra": "11.0.4",
    "@types/node": "catalog:",
    "@types/vscode": "1.82.0",
    "esbuild": "0.28.0",
    "shx": "0.4.0",
    "typescript": "catalog:",
    "vscode-tmgrammar-test": "0.1.3"
  }
}
