{
	"name": "vscode-zig",
	"displayName": "Zig Language",
	"description": "Language support for the Zig programming language",
	"version": "0.6.18",
	"publisher": "ziglang",
	"icon": "images/zig-icon.png",
	"license": "MIT",
	"repository": {
		"type": "git",
		"url": "https://codeberg.org/ziglang/vscode-zig"
	},
	"engines": {
		"vscode": "^1.90.0"
	},
	"categories": [
		"Programming Languages"
	],
	"activationEvents": [
		"workspaceContains:build.zig",
		"workspaceContains:build.zig.zon",
		"workspaceContains:./.zigversion"
	],
	"main": "./out/extension",
	"contributes": {
		"configurationDefaults": {
			"[zig]": {
				"editor.formatOnSave": true,
				"editor.defaultFormatter": "ziglang.vscode-zig",
				"editor.stickyScroll.defaultModel": "foldingProviderModel",
				"files.eol": "\n"
			},
			"explorer.autoRevealExclude": {
				"**/.zig-cache": true,
				"**/zig-cache": true,
				"**/zig-pkg": true
			}
		},
		"languages": [
			{
				"id": "zig",
				"extensions": [
					".zig",
					".zon"
				],
				"aliases": [
					"Zig"
				],
				"configuration": "./language-configuration.json"
			}
		],
		"grammars": [
			{
				"language": "zig",
				"scopeName": "source.zig",
				"path": "./syntaxes/zig.tmLanguage.json"
			}
		],
		"problemMatchers": [
			{
				"name": "zig",
				"owner": "zig",
				"fileLocation": [
					"relative",
					"${workspaceFolder}"
				],
				"pattern": {
					"regexp": "([^\\s]*):(\\d+):(\\d+):\\s+(?:fatal\\s+)?(note|error):\\s+(.*)$",
					"file": 1,
					"line": 2,
					"column": 3,
					"severity": 4,
					"message": 5
				},
				"background": {
					"activeOnStart": true,
					"beginsPattern": "^Build Summary:",
					"endsPattern": "^error: (\\d+ compilation errors|the following command failed with )"
				}
			}
		],
		"taskDefinitions": [
			{
				"type": "zig"
			}
		],
		"configuration": {
			"type": "object",
			"title": "Zig",
			"properties": {
				"zig.path": {
					"scope": "machine-overridable",
					"type": "string",
					"description": "Set a custom path to the `zig` executable. Example: `C:/zig-windows-x86_64-0.13.0/zig.exe`. The string \"zig\" means lookup zig in PATH."
				},
				"zig.libPath": {
					"scope": "machine-overridable",
					"type": "string",
					"description": "Override the Zig library path. Will be automatically resolved by the Zig compiler."
				},
				"zig.version": {
					"scope": "resource",
					"type": "string",
					"description": "Specify which Zig version should be installed. Takes priority over a `.zigversion` file or a `build.zig.zon` with `minimum_zig_version`."
				},
				"zig.formattingProvider": {
					"scope": "resource",
					"type": "string",
					"description": "Whether to enable formatting",
					"enum": [
						"off",
						"extension",
						"zls"
					],
					"enumItemLabels": [
						"Off",
						"Extension",
						"ZLS language server"
					],
					"enumDescriptions": [
						"Disable formatting",
						"Provide formatting by directly invoking `zig fmt`",
						"Provide formatting by using ZLS (which matches `zig fmt`)"
					],
					"default": "zls"
				},
				"zig.testArgs": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"default": [
						"test",
						"--test-filter",
						"${filter}",
						"${path}"
					],
					"description": "Arguments to pass to 'zig' for running tests. Supported variables: ${filter}, ${path}.\n\nTo use test filter with a build script define a custom option to pass it to: `-Dtest-filter=${filter}`."
				},
				"zig.debugTestArgs": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"default": [
						"test",
						"${path}",
						"--test-filter",
						"${filter}",
						"--test-no-exec",
						"-femit-bin=${binaryPath}"
					],
					"description": "Arguments to pass to 'zig' for debugging tests. Supported variables: ${filter}, ${path}, ${binaryPath}.\n\nTo debug a test with a build script add a step that installs the test binary at `zig-out/bin/debug-unit-tests`:\n```zig\nb.step(\"debug-test-unit\", \"Debug unit tests\").dependOn(&b.addInstallArtifact(unit_tests, .{ .dest_sub_path = \"debug-unit-tests\" }).step);\n```"
				},
				"zig.debugAdapter": {
					"scope": "resource",
					"type": "string",
					"default": "lldb",
					"description": "The debug adapter command to run when starting a debug session"
				},
				"zig.buildOnSaveProvider": {
					"scope": "resource",
					"type": "string",
					"description": "Specify how build on save diagnostics should be provided.",
					"enum": [
						"off",
						"auto",
						"extension",
						"zls"
					],
					"enumItemLabels": [
						"Disabled",
						"Automatic",
						"Extension",
						"ZLS language server"
					],
					"enumDescriptions": [
						"Disable build on save",
						"Disabled unless ZLS has enabled [build on save](https://zigtools.org/zls/guides/build-on-save/) automatically.",
						"Provide build on save by running `zig build --watch`",
						"Provide build on save using ZLS"
					],
					"default": "auto"
				},
				"zig.buildOnSaveArgs": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"default": [],
					"description": "Specify which additional arguments should be passed to `zig build` when running build on save. Use the `--build-file` argument to override which build file should be used."
				},
				"zig.zls.trace.server": {
					"scope": "window",
					"type": "string",
					"description": "Traces the communication between VS Code and the ZLS language server.\n\nThe log output can be accessed by running the \"Developer: Show Logs...\" command and selecting \"ZLS language server\". To display trace messages, use \"Developer: Set Log Level...\" or click the settings (⚙️) icon in the top-right corner of the output panel.",
					"enum": [
						"off",
						"messages",
						"verbose"
					],
					"default": "off"
				},
				"zig.zls.enabled": {
					"scope": "resource",
					"type": "string",
					"description": "Whether to enable the optional ZLS language server",
					"enum": [
						"ask",
						"off",
						"on"
					],
					"default": "ask"
				},
				"zig.zls.path": {
					"scope": "machine-overridable",
					"type": "string",
					"description": "Set a custom path to the `zls` executable. Example: `C:/zls/zig-cache/bin/zls.exe`. The string \"zls\" means lookup ZLS in PATH.",
					"format": "path"
				},
				"zig.zls.enableSnippets": {
					"scope": "resource",
					"type": "boolean",
					"description": "Enables snippet completions when the client also supports them",
					"default": true
				},
				"zig.zls.enableArgumentPlaceholders": {
					"scope": "resource",
					"type": "boolean",
					"description": "Whether to enable function argument placeholder completions",
					"default": true
				},
				"zig.zls.completionLabelDetails": {
					"scope": "resource",
					"type": "boolean",
					"description": "Whether to show the function signature in completion results. May improve readability in some editors when disabled",
					"default": true
				},
				"zig.zls.semanticTokens": {
					"scope": "resource",
					"type": "string",
					"description": "Set level of semantic tokens. `partial` only includes information that requires semantic analysis; this will usually give a better result than `full` in VS Code thanks to the Zig extension's syntax file.",
					"enum": [
						"none",
						"partial",
						"full"
					],
					"default": "partial"
				},
				"zig.zls.inlayHintsShowVariableTypeHints": {
					"scope": "resource",
					"type": "boolean",
					"description": "Enable inlay hints for variable types",
					"default": true
				},
				"zig.zls.inlayHintsShowStructLiteralFieldType": {
					"scope": "resource",
					"type": "boolean",
					"description": "Enable inlay hints for fields in struct and union literals",
					"default": true
				},
				"zig.zls.inlayHintsShowParameterName": {
					"scope": "resource",
					"type": "boolean",
					"description": "Enable inlay hints for parameter names",
					"default": true
				},
				"zig.zls.inlayHintsShowBuiltin": {
					"scope": "resource",
					"type": "boolean",
					"description": "Enable inlay hints for builtin functions",
					"default": true
				},
				"zig.zls.inlayHintsExcludeSingleArgument": {
					"scope": "resource",
					"type": "boolean",
					"description": "Don't show inlay hints for single argument calls",
					"default": true
				},
				"zig.zls.inlayHintsHideRedundantParamNames": {
					"scope": "resource",
					"type": "boolean",
					"description": "Hides inlay hints when parameter name matches the identifier (e.g. `foo: foo`)",
					"default": false
				},
				"zig.zls.inlayHintsHideRedundantParamNamesLastToken": {
					"scope": "resource",
					"type": "boolean",
					"description": "Hides inlay hints when parameter name matches the last token of a parameter node (e.g. `foo: bar.foo`, `foo: &foo`)",
					"default": false
				},
				"zig.zls.warnStyle": {
					"scope": "resource",
					"type": "boolean",
					"description": "Enables warnings for style guideline mismatches",
					"default": false
				},
				"zig.zls.highlightGlobalVarDeclarations": {
					"scope": "resource",
					"type": "boolean",
					"description": "Whether to highlight global var declarations",
					"default": false
				},
				"zig.zls.skipStdReferences": {
					"scope": "resource",
					"type": "boolean",
					"description": "When true, skips searching for references in the standard library. Improves lookup speed for functions in user's code. Renaming and go-to-definition will continue to work as is",
					"default": false
				},
				"zig.zls.preferAstCheckAsChildProcess": {
					"scope": "resource",
					"type": "boolean",
					"description": "Favor using `zig ast-check` instead of the builtin one",
					"default": true
				},
				"zig.zls.builtinPath": {
					"scope": "resource",
					"type": "string",
					"description": "Override the path to 'builtin' module. Automatically resolved if unset.",
					"format": "path"
				},
				"zig.zls.buildRunnerPath": {
					"scope": "resource",
					"type": "string",
					"description": "Specify a custom build runner to resolve build system information.",
					"format": "path"
				},
				"zig.zls.globalCachePath": {
					"scope": "resource",
					"type": "string",
					"description": "Path to a directory that will be used as zig's cache. Will default to `${KnownFolders.Cache}/zls`.",
					"format": "path"
				},
				"zig.zls.additionalOptions": {
					"scope": "resource",
					"type": "object",
					"markdownDescription": "Additional config options that should be forwarded to ZLS. Every property must have the format 'zig.zls.someOptionName'. You will **not** be warned about unused or ignored options.",
					"default": {},
					"additionalProperties": false,
					"patternProperties": {
						"^zig\\.zls\\.[a-z]+[A-Z0-9][a-z0-9]+[A-Za-z0-9]*$": {}
					}
				}
			}
		},
		"commands": [
			{
				"command": "zig.run",
				"title": "Run Zig",
				"category": "Zig",
				"description": "Run the current Zig project / file"
			},
			{
				"command": "zig.debug",
				"title": "Debug Zig",
				"category": "Zig",
				"description": "Debug the current Zig project / file"
			},
			{
				"command": "zig.install",
				"title": "Install Zig",
				"category": "Zig Setup"
			},
			{
				"command": "zig.toggleMultilineStringLiteral",
				"title": "Toggle Multiline String Literal",
				"category": "Zig"
			},
			{
				"command": "zig.zls.enable",
				"title": "Enable Language Server",
				"category": "ZLS language server"
			},
			{
				"command": "zig.zls.startRestart",
				"title": "Start / Restart Language Server",
				"category": "ZLS language server"
			},
			{
				"command": "zig.zls.stop",
				"title": "Stop Language Server",
				"category": "ZLS language server"
			}
		],
		"keybindings": [
			{
				"command": "zig.toggleMultilineStringLiteral",
				"key": "alt+m alt+s",
				"when": "editorTextFocus && editorLangId == 'zig'"
			}
		],
		"jsonValidation": [
			{
				"fileMatch": "zls.json",
				"url": "https://raw.githubusercontent.com/zigtools/zls/master/schema.json"
			}
		]
	},
	"scripts": {
		"vscode:prepublish": "npm run build-base -- --minify",
		"build-base": "esbuild --bundle --external:vscode src/extension.ts --outdir=out --platform=node --target=node20 --format=cjs",
		"build": "npm run build-base -- --sourcemap",
		"watch": "npm run build-base -- --sourcemap --watch",
		"test": "npm run compile && node ./node_modules/vscode/bin/test",
		"typecheck": "tsc --noEmit",
		"format": "prettier --write .",
		"format:check": "prettier --check .",
		"lint": "eslint"
	},
	"devDependencies": {
		"@types/libsodium-wrappers": "^0.7.14",
		"@types/lodash-es": "^4.17.12",
		"@types/node": "^20.0.0",
		"@types/semver": "^7.5.8",
		"@types/vscode": "^1.80.0",
		"@types/which": "^2.0.1",
		"@vscode/vsce": "^2.24.0",
		"esbuild": "^0.25.0",
		"eslint": "^9.0.0",
		"eslint-config-prettier": "^9.1.0",
		"prettier": "3.2.5",
		"typescript": "^5.4.3",
		"typescript-eslint": "^8.0.0"
	},
	"dependencies": {
		"libsodium-wrappers": "^0.7.15",
		"lodash-es": "^4.17.21",
		"semver": "^7.5.2",
		"vscode-languageclient": "10.0.0-next.15",
		"which": "^3.0.0"
	},
	"__metadata": {
		"installedTimestamp": 1777152423902,
		"targetPlatform": "undefined",
		"size": 1445737
	}
}