{
	"name": "vscode-java-dependency",
	"displayName": "Project Manager for Java",
	"description": "%description%",
	"version": "0.27.1",
	"publisher": "vscjava",
	"preview": false,
	"aiKey": "5c642b22-e845-4400-badb-3f8509a70777",
	"keywords": [
		"java",
		"project",
		"explorer"
	],
	"engines": {
		"vscode": "^1.95.0"
	},
	"repository": {
		"type": "git",
		"url": "https://github.com/Microsoft/vscode-java-dependency.git"
	},
	"homepage": "https://github.com/Microsoft/vscode-java-dependency/blob/main/README.md",
	"icon": "logo.png",
	"capabilities": {
		"virtualWorkspaces": false,
		"untrustedWorkspaces": {
			"supported": false
		}
	},
	"activationEvents": [
		"onLanguage:java",
		"workspaceContains:pom.xml",
		"workspaceContains:*/pom.xml",
		"workspaceContains:build.gradle",
		"workspaceContains:*/build.gradle",
		"workspaceContains:settings.gradle",
		"workspaceContains:*/settings.gradle",
		"workspaceContains:build.gradle.kts",
		"workspaceContains:*/build.gradle.kts",
		"workspaceContains:settings.gradle.kts",
		"workspaceContains:*/settings.gradle.kts",
		"workspaceContains:.classpath",
		"workspaceContains:*/.classpath",
		"onCommand:_java.project.open"
	],
	"license": "MIT",
	"main": "./main.js",
	"contributes": {
		"javaExtensions": [
			"./server/com.microsoft.jdtls.ext.core-0.24.1.jar"
		],
		"languageModelTools": [
			{
				"name": "lsp_java_getFileStructure",
				"toolReferenceName": "javaFileStructure",
				"modelDescription": "Get the structure (classes, methods, fields, inner classes) of a Java file. Returns a hierarchical outline with symbol kinds and line ranges. Use this first when you need to understand a file's layout before reading specific sections.",
				"displayName": "Java: Get File Structure",
				"canBeReferencedInPrompt": true,
				"icon": "$(symbol-class)",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady",
				"inputSchema": {
					"type": "object",
					"properties": {
						"uri": {
							"type": "string",
							"description": "Java file path (workspace-relative or full URI)"
						}
					},
					"required": [
						"uri"
					]
				}
			},
			{
				"name": "lsp_java_findSymbol",
				"toolReferenceName": "javaFindSymbol",
				"modelDescription": "Search for Java symbols (classes, interfaces, methods, fields) across the workspace by name. Supports partial/fuzzy matching. Use this to find where a class or method is defined.",
				"displayName": "Java: Find Symbol",
				"canBeReferencedInPrompt": true,
				"icon": "$(search)",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady",
				"inputSchema": {
					"type": "object",
					"properties": {
						"query": {
							"type": "string",
							"description": "Symbol name or pattern to search for"
						},
						"limit": {
							"type": "number",
							"description": "Maximum results (default: 20, max: 50)"
						}
					},
					"required": [
						"query"
					]
				}
			},
			{
				"name": "lsp_java_getFileImports",
				"toolReferenceName": "javaFileImports",
				"modelDescription": "Get all import statements from a Java file, classified by source (jdk/project/external).",
				"displayName": "Java: Get File Imports",
				"canBeReferencedInPrompt": true,
				"icon": "$(references)",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady",
				"inputSchema": {
					"type": "object",
					"properties": {
						"uri": {
							"type": "string",
							"description": "Java file path (workspace-relative or full URI)"
						}
					},
					"required": [
						"uri"
					]
				}
			},
			{
				"name": "lsp_java_getTypeAtPosition",
				"toolReferenceName": "javaTypeAtPosition",
				"modelDescription": "Get the compiler-resolved type signature at a specific position. Returns fully qualified type, method signature, or field declaration. Use this when you see var, lambdas, or generics and need the exact type.",
				"displayName": "Java: Get Type at Position",
				"canBeReferencedInPrompt": true,
				"icon": "$(symbol-field)",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady",
				"inputSchema": {
					"type": "object",
					"properties": {
						"uri": {
							"type": "string",
							"description": "Java file path (workspace-relative or full URI)"
						},
						"line": {
							"type": "number",
							"description": "Zero-based line number"
						},
						"character": {
							"type": "number",
							"description": "Zero-based character offset"
						}
					},
					"required": [
						"uri",
						"line",
						"character"
					]
				}
			},
			{
				"name": "lsp_java_getCallHierarchy",
				"toolReferenceName": "javaCallHierarchy",
				"modelDescription": "Get incoming callers or outgoing callees of a method. PREFER THIS over grep_search when you need to find which methods call a specific method — returns precise call sites without noise from comments, imports, or string matches. Use 'incoming' for callers, 'outgoing' for callees.",
				"displayName": "Java: Get Call Hierarchy",
				"canBeReferencedInPrompt": true,
				"icon": "$(call-incoming)",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady",
				"inputSchema": {
					"type": "object",
					"properties": {
						"uri": {
							"type": "string",
							"description": "Java file path (workspace-relative or full URI)"
						},
						"line": {
							"type": "number",
							"description": "Zero-based line number of the method"
						},
						"character": {
							"type": "number",
							"description": "Zero-based character offset within the method name"
						},
						"direction": {
							"type": "string",
							"enum": [
								"incoming",
								"outgoing"
							],
							"default": "incoming",
							"description": "'incoming' for callers, 'outgoing' for callees"
						}
					},
					"required": [
						"uri",
						"line",
						"character",
						"direction"
					]
				}
			},
			{
				"name": "lsp_java_getTypeHierarchy",
				"toolReferenceName": "javaTypeHierarchy",
				"modelDescription": "Get supertypes or subtypes/implementors of a type. PREFER THIS over grep_search('extends|implements') — returns only actual inheritance relationships. Use 'supertypes' for parents, 'subtypes' for children.",
				"displayName": "Java: Get Type Hierarchy",
				"canBeReferencedInPrompt": true,
				"icon": "$(type-hierarchy)",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady",
				"inputSchema": {
					"type": "object",
					"properties": {
						"uri": {
							"type": "string",
							"description": "Java file path (workspace-relative or full URI)"
						},
						"line": {
							"type": "number",
							"description": "Zero-based line number of the type"
						},
						"character": {
							"type": "number",
							"description": "Zero-based character offset within the type name"
						},
						"direction": {
							"type": "string",
							"enum": [
								"supertypes",
								"subtypes"
							],
							"default": "supertypes",
							"description": "'supertypes' for parents, 'subtypes' for children"
						}
					},
					"required": [
						"uri",
						"line",
						"character",
						"direction"
					]
				}
			}
		],
		"commands": [
			{
				"command": "java.project.create",
				"title": "%contributes.commands.java.project.create%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "_java.project.create.from.menus.file",
				"title": "%contributes.commands.java.project.new%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "_java.project.create.from.fileexplorer.menu",
				"title": "%contributes.commands.java.project.new%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "_java.project.create.from.fileexplorer.welcome",
				"title": "%contributes.commands.java.project.create%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "_java.project.create.from.javaprojectexplorer.welcome",
				"title": "%contributes.commands.java.project.create%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "_java.project.create.from.javaprojectexplorer",
				"title": "%contributes.commands.java.project.create%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.project.addLibraries",
				"title": "%contributes.commands.java.project.addLibraries%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.project.addLibraryFolders",
				"title": "%contributes.commands.java.project.addLibraryFolders%",
				"category": "Java",
				"icon": "$(new-folder)"
			},
			{
				"command": "java.project.removeLibrary",
				"title": "%contributes.commands.java.project.removeLibrary%",
				"category": "Java",
				"icon": "$(remove)"
			},
			{
				"command": "java.project.refreshLibraries",
				"title": "%contributes.commands.java.view.package.refresh%",
				"category": "Java",
				"icon": "$(refresh)"
			},
			{
				"command": "java.project.build.workspace",
				"title": "%contributes.commands.java.project.build.workspace%",
				"icon": "$(tools)"
			},
			{
				"command": "java.project.clean.workspace",
				"title": "%contributes.commands.java.project.clean.workspace%"
			},
			{
				"command": "java.project.update",
				"title": "%contributes.commands.java.project.update%"
			},
			{
				"command": "java.project.reloadProjectFromActiveFile",
				"title": "%contributes.commands.java.project.reloadProjectFromActiveFile%",
				"category": "Java",
				"icon": "$(sync)"
			},
			{
				"command": "java.project.rebuild",
				"title": "%contributes.commands.java.project.rebuild%"
			},
			{
				"command": "java.view.package.revealInProjectExplorer",
				"title": "%contributes.commands.java.view.package.revealInProjectExplorer%",
				"category": "Java"
			},
			{
				"command": "java.view.package.refresh",
				"title": "%contributes.commands.java.view.package.refresh%",
				"category": "Java",
				"icon": "$(refresh)"
			},
			{
				"command": "java.view.package.changeToHierarchicalPackageView",
				"title": "%contributes.commands.java.view.package.changeToHierarchicalPackageView%",
				"category": "Java",
				"icon": "$(list-tree)"
			},
			{
				"command": "java.view.package.changeToFlatPackageView",
				"title": "%contributes.commands.java.view.package.changeToFlatPackageView%",
				"category": "Java",
				"icon": "$(list-flat)"
			},
			{
				"command": "java.view.package.linkWithFolderExplorer",
				"title": "%contributes.commands.java.view.package.linkWithFolderExplorer%",
				"category": "Java",
				"icon": {
					"dark": "icons/dark/icon-unlink.svg",
					"light": "icons/light/icon-unlink.svg"
				}
			},
			{
				"command": "java.view.package.unlinkWithFolderExplorer",
				"title": "%contributes.commands.java.view.package.unlinkWithFolderExplorer%",
				"category": "Java",
				"icon": {
					"dark": "icons/dark/icon-link.svg",
					"light": "icons/light/icon-link.svg"
				}
			},
			{
				"command": "java.project.explorer.showNonJavaResources",
				"title": "%contributes.commands.java.project.explorer.showNonJavaResources%",
				"category": "Java"
			},
			{
				"command": "java.project.explorer.hideNonJavaResources",
				"title": "%contributes.commands.java.project.explorer.hideNonJavaResources%",
				"category": "Java"
			},
			{
				"command": "java.view.package.revealFileInOS",
				"title": "%contributes.commands.java.view.package.revealFileInOS%",
				"category": "Java"
			},
			{
				"command": "java.view.package.exportJar",
				"title": "%contributes.commands.java.view.package.exportJar%",
				"category": "Java",
				"icon": "$(export)"
			},
			{
				"command": "java.view.package.copyFilePath",
				"title": "%contributes.commands.java.view.package.copyFilePath%",
				"category": "Java"
			},
			{
				"command": "java.view.package.copyRelativeFilePath",
				"title": "%contributes.commands.java.view.package.copyRelativeFilePath%",
				"category": "Java"
			},
			{
				"command": "java.view.package.new",
				"title": "%contributes.commands.java.view.package.new%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.menus.file.newJavaClass",
				"title": "%contributes.commands.java.view.menus.file.newJavaClass%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newJavaClass",
				"title": "%contributes.commands.java.view.package.newJavaClass%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newJavaInterface",
				"title": "%contributes.commands.java.view.package.newJavaInterface%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newJavaEnum",
				"title": "%contributes.commands.java.view.package.newJavaEnum%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newJavaRecord",
				"title": "%contributes.commands.java.view.package.newJavaRecord%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newJavaAnnotation",
				"title": "%contributes.commands.java.view.package.newJavaAnnotation%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newJavaAbstractClass",
				"title": "%contributes.commands.java.view.package.newJavaAbstractClass%",
				"category": "Java",
				"icon": "$(add)"
			},
			{
				"command": "java.view.package.newPackage",
				"title": "%contributes.commands.java.view.package.newPackage%",
				"category": "Java"
			},
			{
				"command": "java.view.fileExplorer.newPackage",
				"title": "%contributes.commands.java.view.fileExplorer.newPackage%",
				"category": "Java"
			},
			{
				"command": "java.view.package.newFile",
				"title": "%contributes.commands.java.view.package.newFile%",
				"category": "Java",
				"icon": "$(new-file)"
			},
			{
				"command": "java.view.package.newFolder",
				"title": "%contributes.commands.java.view.package.newFolder%",
				"category": "Java",
				"icon": "$(new-folder)"
			},
			{
				"command": "java.view.package.moveFileToTrash",
				"title": "%contributes.commands.java.view.package.moveFileToTrash%",
				"category": "Java"
			},
			{
				"command": "java.view.package.deleteFilePermanently",
				"title": "%contributes.commands.java.view.package.deleteFilePermanently%",
				"category": "Java"
			},
			{
				"command": "java.view.package.renameFile",
				"title": "%contributes.commands.java.view.package.renameFile%",
				"category": "Java"
			},
			{
				"command": "_java.view.modernizeJavaProject",
				"title": "%contributes.commands.java.view.modernizeJavaProject%",
				"category": "Java"
			},
			{
				"command": "_java.upgradeWithCopilot",
				"title": "%contributes.commands.java.upgradeWithCopilot%",
				"category": "Java"
			}
		],
		"configuration": {
			"type": "object",
			"title": "Java Project Manager",
			"properties": {
				"java.dependency.showMembers": {
					"type": "boolean",
					"description": "%configuration.java.dependency.showMembers%",
					"default": false
				},
				"java.dependency.syncWithFolderExplorer": {
					"type": "boolean",
					"description": "%configuration.java.dependency.syncWithFolderExplorer%",
					"default": true
				},
				"java.dependency.autoRefresh": {
					"type": "boolean",
					"description": "%configuration.java.dependency.autoRefresh%",
					"default": true
				},
				"java.dependency.refreshDelay": {
					"type": "number",
					"description": "%configuration.java.dependency.refreshDelay%",
					"default": 2000
				},
				"java.dependency.packagePresentation": {
					"type": "string",
					"enum": [
						"flat",
						"hierarchical"
					],
					"description": "%configuration.java.dependency.packagePresentation%",
					"default": "flat"
				},
				"java.dependency.enableDependencyCheckup": {
					"type": "boolean",
					"description": "%configuration.java.dependency.enableDependencyCheckup%",
					"default": true
				},
				"java.project.exportJar.targetPath": {
					"type": "string",
					"anyOf": [
						{
							"enum": [
								"${workspaceFolder}/${workspaceFolderBasename}.jar",
								""
							],
							"enumDescriptions": [
								"%configuration.java.project.exportJar.targetPath.workspaceFolder%",
								"%configuration.java.project.exportJar.targetPath.select%"
							]
						},
						"string"
					],
					"markdownDescription": "%configuration.java.project.exportJar.targetPath.customization%",
					"default": "${workspaceFolder}/${workspaceFolderBasename}.jar"
				},
				"java.project.explorer.showNonJavaResources": {
					"type": "boolean",
					"description": "%configuration.java.project.explorer.showNonJavaResources%",
					"default": true
				},
				"vscode-java-dependency.enableLspTools": {
					"type": "boolean",
					"scope": "application",
					"description": "%configuration.vscode-java-dependency.enableLspTools.description%",
					"default": false,
					"tags": [
						"experimental"
					],
					"experiment": {
						"mode": "startup"
					}
				}
			}
		},
		"keybindings": [
			{
				"command": "java.view.package.revealFileInOS",
				"key": "ctrl+alt+r",
				"win": "shift+alt+r",
				"mac": "cmd+alt+r",
				"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
			},
			{
				"command": "java.view.package.copyFilePath",
				"key": "ctrl+alt+c",
				"win": "shift+alt+c",
				"mac": "cmd+alt+c",
				"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
			},
			{
				"command": "java.view.package.copyRelativeFilePath",
				"key": "ctrl+shift+alt+c",
				"win": "ctrl+k ctrl+shift+c",
				"mac": "cmd+shift+alt+c",
				"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
			},
			{
				"command": "java.view.package.renameFile",
				"key": "F2",
				"mac": "enter",
				"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
			},
			{
				"command": "java.view.package.moveFileToTrash",
				"key": "delete",
				"mac": "cmd+backspace",
				"when": "java:serverMode == Standard && focusedView == javaProjectExplorer && explorerResourceMoveableToTrash"
			},
			{
				"command": "java.view.package.deleteFilePermanently",
				"key": "delete",
				"mac": "cmd+backspace",
				"when": "java:serverMode == Standard && focusedView == javaProjectExplorer && !explorerResourceMoveableToTrash"
			}
		],
		"menus": {
			"file/newFile": [
				{
					"command": "java.view.menus.file.newJavaClass"
				},
				{
					"command": "_java.project.create.from.menus.file"
				}
			],
			"commandPalette": [
				{
					"command": "java.project.reloadProjectFromActiveFile",
					"when": "false"
				},
				{
					"command": "java.view.package.exportJar",
					"when": "java:serverMode == Standard && !java:noJavaProjects"
				},
				{
					"command": "java.view.package.refresh",
					"when": "false"
				},
				{
					"command": "java.view.package.changeToHierarchicalPackageView",
					"when": "false"
				},
				{
					"command": "java.view.package.changeToFlatPackageView",
					"when": "false"
				},
				{
					"command": "java.view.package.linkWithFolderExplorer",
					"when": "false"
				},
				{
					"command": "java.view.package.unlinkWithFolderExplorer",
					"when": "false"
				},
				{
					"command": "java.view.package.revealFileInOS",
					"when": "false"
				},
				{
					"command": "java.view.package.copyFilePath",
					"when": "false"
				},
				{
					"command": "java.view.package.copyRelativeFilePath",
					"when": "false"
				},
				{
					"command": "java.project.addLibraries",
					"when": "false"
				},
				{
					"command": "java.project.addLibraryFolders",
					"when": "false"
				},
				{
					"command": "java.project.removeLibrary",
					"when": "false"
				},
				{
					"command": "java.project.refreshLibraries",
					"when": "false"
				},
				{
					"command": "java.view.package.new",
					"when": "false"
				},
				{
					"command": "java.view.package.newJavaClass",
					"when": "false"
				},
				{
					"command": "java.view.package.newJavaInterface",
					"when": "false"
				},
				{
					"command": "java.view.package.newJavaEnum",
					"when": "false"
				},
				{
					"command": "java.view.package.newJavaRecord",
					"when": "false"
				},
				{
					"command": "java.view.package.newJavaAnnotation",
					"when": "false"
				},
				{
					"command": "java.view.package.newJavaAbstractClass",
					"when": "false"
				},
				{
					"command": "java.view.package.newPackage",
					"when": "false"
				},
				{
					"command": "java.view.package.newFile",
					"when": "false"
				},
				{
					"command": "java.view.package.newFolder",
					"when": "false"
				},
				{
					"command": "java.view.package.renameFile",
					"when": "false"
				},
				{
					"command": "java.view.package.moveFileToTrash",
					"when": "false"
				},
				{
					"command": "java.view.package.deleteFilePermanently",
					"when": "false"
				},
				{
					"command": "java.view.fileExplorer.newPackage",
					"when": "false"
				},
				{
					"command": "java.project.build.workspace",
					"when": "false"
				},
				{
					"command": "java.project.clean.workspace",
					"when": "false"
				},
				{
					"command": "java.project.update",
					"when": "false"
				},
				{
					"command": "java.project.rebuild",
					"when": "false"
				},
				{
					"command": "java.view.package.revealInProjectExplorer",
					"when": "false"
				},
				{
					"command": "_java.project.create.from.menus.file",
					"when": "false"
				},
				{
					"command": "_java.project.create.from.fileexplorer.menu",
					"when": "false"
				},
				{
					"command": "_java.project.create.from.fileexplorer.welcome",
					"when": "false"
				},
				{
					"command": "_java.project.create.from.javaprojectexplorer.welcome",
					"when": "false"
				},
				{
					"command": "_java.project.create.from.javaprojectexplorer",
					"when": "false"
				},
				{
					"command": "_java.view.modernizeJavaProject",
					"when": "false"
				},
				{
					"command": "_java.upgradeWithCopilot",
					"when": "false"
				}
			],
			"explorer/context": [
				{
					"submenu": "javaProject.newJavaFile",
					"when": "explorerResourceIsFolder",
					"group": "1_javaactions@10"
				},
				{
					"command": "java.view.fileExplorer.newPackage",
					"when": "explorerResourceIsFolder",
					"group": "1_javaactions@20"
				},
				{
					"command": "_java.project.create.from.fileexplorer.menu",
					"when": "explorerResourceIsFolder",
					"group": "1_javaactions@30"
				},
				{
					"command": "_java.view.modernizeJavaProject",
					"when": "explorerResourceIsFolder && java:serverMode",
					"group": "1_javaactions@40"
				},
				{
					"command": "java.view.package.revealInProjectExplorer",
					"when": "resourceFilename =~ /(.*\\.gradle)|(.*\\.gradle\\.kts)|(pom\\.xml)$/ && java:serverMode == Standard",
					"group": "1_javaactions@40"
				},
				{
					"command": "java.view.package.revealInProjectExplorer",
					"when": "resourceExtname == .java && java:serverMode == Standard",
					"group": "1_javaactions@40"
				}
			],
			"editor/title": [
				{
					"command": "java.project.reloadProjectFromActiveFile",
					"when": "java:reloadProjectActive && javaLSReady",
					"group": "navigation"
				}
			],
			"editor/title/context": [
				{
					"command": "java.view.package.revealInProjectExplorer",
					"when": "resourceFilename =~ /(.*\\.gradle)|(.*\\.gradle\\.kts)|(pom\\.xml)$/ && java:serverMode == Standard",
					"group": "2_files@100"
				},
				{
					"command": "java.view.package.revealInProjectExplorer",
					"when": "resourceExtname == .java && java:serverMode == Standard",
					"group": "2_files@100"
				}
			],
			"view/title": [
				{
					"command": "_java.project.create.from.javaprojectexplorer",
					"when": "view == javaProjectExplorer",
					"group": "navigation@10"
				},
				{
					"command": "java.view.package.exportJar",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && !java:noJavaProjects && !java:importFailed",
					"group": "navigation@20"
				},
				{
					"command": "java.project.build.workspace",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && !java:noJavaProjects && !java:importFailed",
					"group": "navigation@30"
				},
				{
					"command": "java.view.package.changeToHierarchicalPackageView",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.packagePresentation == flat",
					"group": "overflow_10@10"
				},
				{
					"command": "java.view.package.changeToFlatPackageView",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.packagePresentation != flat",
					"group": "overflow_10@10"
				},
				{
					"command": "java.view.package.linkWithFolderExplorer",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.syncWithFolderExplorer != true",
					"group": "overflow_10@20"
				},
				{
					"command": "java.view.package.unlinkWithFolderExplorer",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.syncWithFolderExplorer == true",
					"group": "overflow_10@20"
				},
				{
					"command": "java.project.explorer.showNonJavaResources",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && !config.java.project.explorer.showNonJavaResources",
					"group": "overflow_10@30"
				},
				{
					"command": "java.project.explorer.hideNonJavaResources",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.project.explorer.showNonJavaResources",
					"group": "overflow_10@30"
				},
				{
					"command": "java.project.clean.workspace",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && !java:noJavaProjects",
					"group": "overflow_20@10"
				},
				{
					"command": "java.view.package.refresh",
					"when": "view == javaProjectExplorer && java:serverMode == Standard && !java:noJavaProjects",
					"group": "overflow_50@10"
				}
			],
			"view/item/context": [
				{
					"command": "java.view.package.revealFileInOS",
					"when": "view == javaProjectExplorer && viewItem =~ /java:(?=.*?\\b\\+uri\\b)/",
					"group": "6_copypath@10"
				},
				{
					"command": "java.view.package.copyFilePath",
					"when": "view == javaProjectExplorer && viewItem =~ /java:(?=.*?\\b\\+uri\\b)/",
					"group": "6_copypath@20"
				},
				{
					"command": "java.view.package.copyRelativeFilePath",
					"when": "view == javaProjectExplorer && viewItem =~ /java:(?=.*?\\b\\+uri\\b)/",
					"group": "6_copypath@25"
				},
				{
					"command": "java.view.package.renameFile",
					"when": "view == javaProjectExplorer && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+(source|resource)\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "7_modification@10"
				},
				{
					"command": "java.view.package.renameFile",
					"when": "view == javaProjectExplorer && viewItem =~ /java:(file|type|folder)(?=.*?\\b\\+uri\\b)/",
					"group": "7_modification@10"
				},
				{
					"command": "java.view.package.moveFileToTrash",
					"when": "view == javaProjectExplorer && explorerResourceMoveableToTrash && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+(source|resource)\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "7_modification@20"
				},
				{
					"command": "java.view.package.moveFileToTrash",
					"when": "view == javaProjectExplorer && explorerResourceMoveableToTrash && viewItem =~ /java:(file|type|folder)(?=.*?\\b\\+uri\\b)/",
					"group": "7_modification@20"
				},
				{
					"command": "java.view.package.deleteFilePermanently",
					"when": "view == javaProjectExplorer && !explorerResourceMoveableToTrash && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+(source|resource)\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "7_modification@20"
				},
				{
					"command": "java.view.package.deleteFilePermanently",
					"when": "view == javaProjectExplorer && !explorerResourceMoveableToTrash && viewItem =~ /java:(file|type|folder)(?=.*?\\b\\+uri\\b)/",
					"group": "7_modification@20"
				},
				{
					"command": "java.project.build.workspace",
					"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "8_execution@5"
				},
				{
					"command": "java.project.rebuild",
					"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "8_execution@6"
				},
				{
					"submenu": "javaProject.new",
					"when": "view == javaProjectExplorer && viewItem =~ /java(?!:container)(?!:jar)(?!.*?\\b\\+binary\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "1_new@10"
				},
				{
					"command": "java.view.package.new",
					"when": "view == javaProjectExplorer && viewItem =~ /java(?!:container)(?!:jar)(?!.*?\\b\\+binary\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "inline@add_0"
				},
				{
					"command": "java.project.addLibraries",
					"alt": "java.project.addLibraryFolders",
					"when": "view == javaProjectExplorer && viewItem =~ /java:container(?=.*?\\b\\+referencedLibrary\\b)/",
					"group": "inline@0"
				},
				{
					"command": "java.project.removeLibrary",
					"when": "view == javaProjectExplorer && viewItem =~ /java:jar(?=.*?\\b\\+referencedLibrary\\b)(?=.*?\\b\\+uri\\b)/",
					"group": "inline"
				},
				{
					"command": "java.project.refreshLibraries",
					"when": "view == javaProjectExplorer && viewItem =~ /java:container(?=.*?\\b\\+referencedLibrary\\b)/",
					"group": "inline@1"
				},
				{
					"command": "java.view.package.exportJar",
					"when": "view == javaProjectExplorer && viewItem =~ /java:workspace(?=.*?\\b\\+uri\\b)/ && java:serverMode == Standard",
					"group": "inline"
				},
				{
					"submenu": "javaProject.maven",
					"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+uri\\b)(?=.*?\\b\\+maven\\b)/",
					"group": "9_configuration@10"
				},
				{
					"submenu": "javaProject.gradle",
					"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+uri\\b)(?=.*?\\b\\+(?:bsp-)?gradle\\b)/",
					"group": "9_configuration@10"
				}
			],
			"javaProject.maven": [
				{
					"command": "java.project.update",
					"group": "maven@10"
				}
			],
			"javaProject.gradle": [
				{
					"command": "java.project.update",
					"group": "gradle@10"
				}
			],
			"javaProject.new": [
				{
					"command": "java.view.package.newJavaClass",
					"group": "new1@10",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/)"
				},
				{
					"command": "java.view.package.newJavaInterface",
					"group": "new1@11",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/)"
				},
				{
					"command": "java.view.package.newJavaEnum",
					"group": "new1@12",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/)"
				},
				{
					"command": "java.view.package.newJavaRecord",
					"group": "new1@13",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/) && viewItem =~ /java:.*\\+allowRecord\\b/"
				},
				{
					"command": "java.view.package.newJavaAnnotation",
					"group": "new1@14",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/)"
				},
				{
					"command": "java.view.package.newJavaAbstractClass",
					"group": "new1@15",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/)"
				},
				{
					"command": "java.view.package.newPackage",
					"group": "new1@20",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)/ || viewItem =~ /java:project(?=.*?\\b\\+java\\b)/ || viewItem =~ /java:type/)"
				},
				{
					"command": "java.view.package.newFile",
					"group": "new2@30"
				},
				{
					"command": "java.view.package.newFolder",
					"group": "new2@40",
					"when": "view == javaProjectExplorer && (viewItem =~ /java:(file|folder|project)/ || viewItem =~ /java:(packageRoot)(?=.*?\\b\\+resource\\b)/)"
				}
			],
			"javaProject.newJavaFile": [
				{
					"command": "java.view.package.newJavaClass",
					"group": "new@10",
					"when": "explorerResourceIsFolder"
				},
				{
					"command": "java.view.package.newJavaInterface",
					"group": "new@20",
					"when": "explorerResourceIsFolder"
				},
				{
					"command": "java.view.package.newJavaEnum",
					"group": "new@30",
					"when": "explorerResourceIsFolder"
				},
				{
					"command": "java.view.package.newJavaRecord",
					"group": "new@40",
					"when": "explorerResourceIsFolder"
				},
				{
					"command": "java.view.package.newJavaAnnotation",
					"group": "new@50",
					"when": "explorerResourceIsFolder"
				},
				{
					"command": "java.view.package.newJavaAbstractClass",
					"group": "new@60",
					"when": "explorerResourceIsFolder"
				}
			]
		},
		"submenus": [
			{
				"id": "javaProject.maven",
				"label": "Maven"
			},
			{
				"id": "javaProject.gradle",
				"label": "Gradle"
			},
			{
				"id": "javaProject.new",
				"label": "%contributes.submenus.javaProject.new%"
			},
			{
				"id": "javaProject.newJavaFile",
				"label": "%contributes.commands.java.view.menus.file.newJavaClass%"
			}
		],
		"views": {
			"explorer": [
				{
					"id": "javaProjectExplorer",
					"name": "Java Projects",
					"contextualTitle": "Java Projects",
					"icon": "$(project)",
					"when": "java:projectManagerActivated"
				}
			]
		},
		"viewsWelcome": [
			{
				"view": "explorer",
				"contents": "%viewsWelcome.workbench.createNewJavaProject%",
				"when": "workspaceFolderCount == 0"
			},
			{
				"view": "javaProjectExplorer",
				"contents": "%viewsWelcome.workbench.noJavaProject%",
				"when": "java:noJavaProjects"
			},
			{
				"view": "javaProjectExplorer",
				"contents": "%viewsWelcome.workbench.inLightWeightMode%",
				"when": "java:serverMode == LightWeight"
			},
			{
				"view": "javaProjectExplorer",
				"contents": "%viewsWelcome.workbench.installLanguageSupport%",
				"when": "java:projectManagerActivated && !java:languageSupportInstalled"
			},
			{
				"view": "javaProjectExplorer",
				"contents": "%viewsWelcome.workbench.importFailed%",
				"when": "java:importFailed"
			}
		],
		"taskDefinitions": [
			{
				"type": "java (buildArtifact)",
				"properties": {
					"label": {
						"type": "string",
						"description": "%taskDefinitions.java.project.exportJar.label%"
					},
					"mainClass": {
						"type": "string",
						"description": "%taskDefinitions.java.project.exportJar.mainClass%"
					},
					"targetPath": {
						"type": "string",
						"anyOf": [
							{
								"type": "string"
							},
							{
								"enum": [
									"${workspaceFolder}/${workspaceFolderBasename}.jar",
									""
								],
								"enumDescriptions": [
									"%configuration.java.project.exportJar.targetPath.workspaceFolder%",
									"%configuration.java.project.exportJar.targetPath.select%"
								]
							}
						],
						"description": "%configuration.java.project.exportJar.targetPath.customization%"
					},
					"elements": {
						"type": "array",
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"enum": [
										"${compileOutput}",
										"${testCompileOutput}",
										"${dependencies}",
										"${testDependencies}"
									],
									"enumDescriptions": [
										"%taskDefinitions.java.project.exportJar.compileOutput%",
										"%taskDefinitions.java.project.exportJar.testCompileOutput%",
										"%taskDefinitions.java.project.exportJar.dependencies%",
										"%taskDefinitions.java.project.exportJar.testDependencies%"
									]
								}
							]
						},
						"description": "%taskDefinitions.java.project.exportJar.elements%"
					}
				}
			},
			{
				"type": "java (build)",
				"properties": {
					"paths": {
						"type": "array",
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"enum": [
										"${workspace}",
										"!<path>"
									],
									"enumDescriptions": [
										"%taskDefinitions.java.project.build.path.workspace%",
										"%taskDefinitions.java.project.build.path.exclude%"
									]
								}
							]
						},
						"default": [
							"${workspace}"
						],
						"description": "%taskDefinitions.java.project.build.path%"
					},
					"isFullBuild": {
						"type": "boolean",
						"default": "true",
						"description": "%taskDefinitions.java.project.build.isFullBuild%"
					}
				}
			},
			{
				"type": "java",
				"when": "java:showDeprecatedTasks",
				"properties": {
					"label": {
						"type": "string",
						"description": "%taskDefinitions.java.project.exportJar.label%"
					},
					"mainClass": {
						"type": "string",
						"description": "%taskDefinitions.java.project.exportJar.mainClass%"
					},
					"targetPath": {
						"type": "string",
						"anyOf": [
							{
								"type": "string"
							},
							{
								"enum": [
									"${workspaceFolder}/${workspaceFolderBasename}.jar",
									""
								],
								"enumDescriptions": [
									"%configuration.java.project.exportJar.targetPath.workspaceFolder%",
									"%configuration.java.project.exportJar.targetPath.select%"
								]
							}
						],
						"description": "%configuration.java.project.exportJar.targetPath.customization%"
					},
					"elements": {
						"type": "array",
						"items": {
							"anyOf": [
								{
									"type": "string"
								},
								{
									"enum": [
										"${compileOutput}",
										"${testCompileOutput}",
										"${dependencies}",
										"${testDependencies}"
									],
									"enumDescriptions": [
										"%taskDefinitions.java.project.exportJar.compileOutput%",
										"%taskDefinitions.java.project.exportJar.testCompileOutput%",
										"%taskDefinitions.java.project.exportJar.dependencies%",
										"%taskDefinitions.java.project.exportJar.testDependencies%"
									]
								}
							]
						},
						"description": "%taskDefinitions.java.project.exportJar.elements%"
					}
				}
			}
		],
		"chatSkills": [
			{
				"path": "./resources/skills/java-lsp-tools/SKILL.md",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady"
			}
		],
		"chatInstructions": [
			{
				"path": "./resources/instruments/javaLspContext.instructions.md",
				"when": "config.vscode-java-dependency.enableLspTools && javaLSReady"
			}
		]
	},
	"scripts": {
		"compile": "tsc -p . && webpack --config webpack.config.js --mode development",
		"watch": "webpack --mode development --watch",
		"test": "tsc -p . && webpack --config webpack.config.js --mode development && node ./dist/test/index.js",
		"test-ui": "tsc -p . && webpack --config webpack.config.js --mode development && node ./dist/test/ui/index.js",
		"build-server": "node scripts/buildJdtlsExt.js",
		"vscode:prepublish": "tsc -p ./ && webpack --mode production",
		"tslint": "tslint -t verbose --project tsconfig.json"
	},
	"devDependencies": {
		"@types/fs-extra": "^9.0.13",
		"@types/glob": "^7.2.0",
		"@types/lodash": "^4.14.191",
		"@types/minimatch": "^3.0.3",
		"@types/mocha": "^9.1.1",
		"@types/node": "20.x",
		"@types/semver": "^7.3.13",
		"@types/vscode": "1.95.0",
		"@vscode/test-electron": "^2.5.2",
		"copy-webpack-plugin": "^11.0.0",
		"glob": "^7.2.3",
		"mocha": "^11.7.5",
		"ts-loader": "^9.4.2",
		"tslint": "^6.1.3",
		"typescript": "^4.9.4",
		"vscode-extension-tester": "^8.23.0",
		"webpack": "^5.105.0",
		"webpack-cli": "^4.10.0"
	},
	"dependencies": {
		"@github/copilot-language-server": "^1.388.0",
		"@octokit/rest": "^21.1.1",
		"await-lock": "^2.2.2",
		"fmtr": "^1.1.4",
		"fs-extra": "^10.1.0",
		"globby": "^13.1.3",
		"lodash": "^4.17.23",
		"minimatch": "^5.1.9",
		"semver": "^7.3.8",
		"vscode-extension-telemetry-wrapper": "^0.15.0",
		"vscode-tas-client": "^0.1.75"
	},
	"__metadata": {
		"installedTimestamp": 1774728990956,
		"targetPlatform": "universal",
		"size": 1191288
	}
}