{
	"name": "dascript-plugin",
	"displayName": "daScript language support",
	"description": "daScript language support",
	"author": "Dmitri Granetchi",
	"license": "MIT",
	"version": "1.3.5",
	"repository": {
		"type": "git",
		"url": "https://github.com/profelis/daScript-plugin"
	},
	"publisher": "profelis",
	"categories": [
		"Programming Languages",
		"Linters",
		"Snippets",
		"Debuggers"
	],
	"keywords": [
		"dascript",
		"daScript",
		"daslang",
		"Daslang"
	],
	"contributors": [
		"dima.granetchi@gmail.com"
	],
	"extensionDependencies": [
		"eguskov.dascript"
	],
	"engines": {
		"vscode": "^1.67.0"
	},
	"activationEvents": [
		"onLanguage:dascript"
	],
	"main": "./client/out/extension",
	"contributes": {
		"breakpoints": [
			{
				"language": "dascript"
			}
		],
		"debuggers": [
			{
				"type": "dascript",
				"languages": [
					"dascript"
				],
				"label": "daScript debugger",
				"configurationAttributes": {
					"launch": {
						"required": [
							"program"
						],
						"properties": {
							"program": {
								"type": "string",
								"description": "daScript compiler with arguments",
								"default": "${config:dascript.compiler} ${file}"
							},
							"console": {
								"type": "string",
								"description": "Where to launch the debug target. Defaults to 'internalOutput' if not defined",
								"default": "internalOutput",
								"enum": [
									"internalOutput",
									"externalTerminal",
									"internalTerminal"
								]
							},
							"cwd": {
								"type": "string",
								"description": "Working directory",
								"default": "${fileDirname}"
							},
							"host": {
								"type": "string",
								"description": "Host used to connect with debugger",
								"default": ""
							},
							"port": {
								"type": "number",
								"description": "Port used to connect with debugger (0 - random)",
								"default": 0
							},
							"connectTimeout": {
								"type": "number",
								"description": "Socket connection delay in seconds",
								"default": 2
							},
							"inlinePreviewLimit": {
								"type": "number",
								"description": "Max length of preview values",
								"default": 50
							},
							"maxChildrenCount": {
								"type": "number",
								"description": "Max number of children to show in variables view (-1 - unlimited)",
								"default": 500
							},
							"collectAllGlobals": {
								"type": "boolean",
								"description": "Collect all global variables",
								"default": false
							},
							"steppingDebugger": {
								"type": "boolean",
								"description": "Use stepping debugger",
								"default": false
							},
							"profiler": {
								"type": "boolean",
								"description": "Use internal profiler. Profile whole application",
								"default": false
							},
							"profilerManual": {
								"type": "boolean",
								"description": "Use internal profiler. Call profiler_boost::enable_profiler/disable_profiler to manage profiler",
								"default": false
							},
							"profilerFile": {
								"type": "string",
								"description": "Profiler output file. Requires 'profiler' attribute",
								"default": "",
								"required": [
									"profiler"
								]
							},
							"paths": {
								"type": "array",
								"default": [],
								"description": "Absolute folder paths to resolve relative file paths"
							},
							"pathAliases": {
								"type": "object",
								"default": {},
								"description": "Aliases for paths to resolve virtual file paths"
							}
						}
					},
					"attach": {
						"required": [],
						"properties": {
							"host": {
								"type": "string",
								"description": "Host used to connect with debugger",
								"default": ""
							},
							"port": {
								"type": "number",
								"description": "Debug port used to connect",
								"default": 10000
							},
							"inlinePreviewLimit": {
								"type": "number",
								"description": "Max length of preview values",
								"default": 50
							},
							"maxChildrenCount": {
								"type": "number",
								"description": "Max number of children to show in variables view (-1 - unlimited)",
								"default": 500
							},
							"collectAllGlobals": {
								"type": "boolean",
								"description": "Collect all global variables",
								"default": false
							},
							"steppingDebugger": {
								"type": "boolean",
								"description": "Use stepping debugger",
								"default": false
							},
							"paths": {
								"type": "array",
								"default": [],
								"description": "Absolute folder paths to resolve relative file paths"
							},
							"pathAliases": {
								"type": "object",
								"default": {},
								"description": "Aliases for paths to resolve virtual file paths"
							}
						}
					}
				},
				"initialConfigurations": [
					{
						"type": "dascript",
						"request": "launch",
						"name": "daScript: launch",
						"program": "${config:dascript.compiler} ${file}",
						"cwd": "${fileDirname}"
					},
					{
						"type": "dascript",
						"request": "attach",
						"name": "daScript: attach",
						"port": 10000
					}
				],
				"configurationSnippets": [
					{
						"label": "daScript: Launch",
						"description": "Debug daScript file",
						"body": {
							"type": "dascript",
							"request": "launch",
							"name": "daScript: Launch",
							"program": "^\"\\${config:dascript.compiler} \\${file}\"",
							"cwd": "^\"\\${fileDirname}\""
						}
					},
					{
						"label": "daScript: Attach",
						"description": "Attach to running application",
						"body": {
							"type": "dascript",
							"request": "attach",
							"name": "daScript: Attach",
							"port": 10000
						}
					},
					{
						"label": "daScript: Test file",
						"description": "Test current file using dastest framework",
						"body": {
							"type": "dascript",
							"request": "launch",
							"name": "daScript: Test file",
							"program": "^\"\\${config:dascript.compiler} _dasroot_/dastest/dastest.das -- --color --test \\${file}\"",
							"cwd": "^\"\\${fileDirname}\"",
							"console": "internalTerminal"
						}
					},
					{
						"label": "daScript: Test all",
						"description": "Test whole workspace using dastest framework",
						"body": {
							"type": "dascript",
							"request": "launch",
							"name": "daScript: Test all",
							"program": "^\"\\${config:dascript.compiler} _dasroot_/dastest/dastest.das -- --color --test \\${workspaceFolder}\"",
							"cwd": "^\"\\${workspaceFolder}\"",
							"console": "internalTerminal"
						}
					}
				]
			}
		],
		"configuration": {
			"type": "object",
			"title": "daScript",
			"properties": {
				"dascript.compiler": {
					"scope": "resource",
					"type": "string",
					"default": "daslang",
					"description": "Absolute path to the dascript compiler"
				},
				"dascript.server.args": {
					"scope": "resource",
					"type": "array",
					"default": [
						"${file}"
					],
					"description": "LSP server run arguments\n- ${file} - current file"
				},
				"dascript.server.connectTimeout": {
					"type": "number",
					"description": "Socket connection delay in seconds",
					"default": 4
				},
				"dascript.project.file": {
					"scope": "resource",
					"type": "string",
					"default": "",
					"description": "Dascript project file - *.das_project"
				},
				"dascript.project.scanWorkspace": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "Scan/compile all files in workspace"
				},
				"dascript.project.storeCompilationData": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "Whether to store compilation data in cache folder (.dascript)"
				},
				"dascript.project.compilationConcurrency": {
					"scope": "resource",
					"type": "number",
					"default": 8,
					"description": "Number of processes to use while validating (compiling) workspace"
				},
				"dascript.project.roots": {
					"scope": "resource",
					"type": "array",
					"default": [],
					"description": "Absolute folder paths to resolve relative file paths"
				},
				"dascript.project.fileAccessRoots": {
					"scope": "resource",
					"type": "object",
					"default": {},
					"description": "Additional roots passed to file access when compiling script file"
				},
				"dascript.hovers.verbose": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "More information in hover"
				},
				"dascript.debug.port": {
					"scope": "resource",
					"type": "integer",
					"default": 0,
					"description": "Server port (negative value - disable server spawn)"
				},
				"dascript.experimental": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "Experimental (beta) features"
				},
				"dascript.colorPreviewFormat": {
					"scope": "resource",
					"type": "string",
					"enum": [
						"ARGB",
						"RGBA"
					],
					"default": "ARGB",
					"description": "Color preview format"
				},
				"dascript.policies.no_global_variables": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "no_global_variables policy"
				},
				"dascript.policies.no_unused_block_arguments": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "no_unused_block_arguments policy"
				},
				"dascript.policies.no_unused_function_arguments": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "no_unused_function_arguments policy"
				},
				"dascript.policies.fail_on_lack_of_aot_export": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "fail_on_lack_of_aot_export policy"
				},
				"dascript.policies.version_2_syntax": {
					"scope": "resource",
					"type": "boolean",
					"default": true,
					"description": "version_2_syntax policy"
				},
				"dascript.policies.gen2_make_syntax": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "gen2_make_syntax policy"
				},
				"dascript.policies.always_report_candidates_threshold": {
					"scope": "resource",
					"type": "integer",
					"default": 6,
					"description": "always_report_candidates_threshold policy"
				},
				"dascript.policies.max_infer_passes": {
					"scope": "resource",
					"type": "integer",
					"default": 50,
					"description": "max_infer_passes policy"
				},
				"dascript.policies.strict_properties": {
					"scope": "resource",
					"type": "boolean",
					"default": false,
					"description": "strict_properties policy"
				}
			}
		},
		"snippets": [
			{
				"language": "dascript",
				"path": "./snippets/dascript.json"
			}
		],
		"commands": [
			{
				"command": "dascript.validateWorkspace",
				"title": "daScript: Run workspace validation"
			},
			{
				"command": "dascript.clearValidationCache",
				"title": "daScript: Clear validation cache"
			}
		]
	},
	"scripts": {
		"vscode:prepublish": "npm run compile",
		"compile": "tsc -b",
		"watch": "tsc -b -w",
		"lint": "eslint ./client/src ./server/src",
		"postinstall": "cd client && npm install && cd ../server && npm install && cd .."
	},
	"devDependencies": {
		"@eslint/js": "^10.0.1",
		"@types/mocha": "^10.0.10",
		"@types/node": "^25.3.0",
		"@typescript-eslint/eslint-plugin": "^8.56.0",
		"@typescript-eslint/parser": "^8.56.0",
		"@vscode/debugadapter": "^1.48.0",
		"eslint": "^10.0.1",
		"typescript": "^5.9.3"
	},
	"dependencies": {
		"@vscode/debugadapter": "^1.48.0",
		"run-in-terminal": "^0.0.3",
		"semver": "^7.5.2"
	},
	"__metadata": {
		"installedTimestamp": 1779905927512,
		"targetPlatform": "undefined",
		"size": 2789709
	}
}