Skip to content
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dist/test/**
docs/**
gulp*
node_modules/**
!node_modules/@vscode/codicons/**
out/**
resources/readme/**
src/**
Expand Down
33 changes: 10 additions & 23 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

118 changes: 118 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,26 @@
"command": "azureFunctions.getMcpHostKey",
"title": "%azureFunctions.getMcpHostKey%",
"category": "Azure Functions"
},
{
"command": "azureFunctions.validateFunctionApp",
"title": "%azureFunctions.validateFunctionApp%",
"category": "Azure Functions",
"icon": "$(pass-filled)"
},
{
"command": "azureFunctions.smartDeploy",
"title": "%azureFunctions.smartDeploy%",
"category": "Azure Functions",
"icon": "$(cloud-upload)",
"enablement": "!virtualWorkspace"
},
{
"command": "azureFunctions.runFunctionApp",
"title": "%azureFunctions.runFunctionApp%",
"category": "Azure Functions",
"icon": "$(run-all)",
"enablement": "!virtualWorkspace"
}
],
"submenus": [
Expand Down Expand Up @@ -496,6 +516,18 @@
{
"command": "azureFunctions.deployProject",
"group": "2_deploy@1"
},
{
"command": "azureFunctions.smartDeploy",
"group": "2_deploy@2"
},
{
"command": "azureFunctions.runFunctionApp",
"group": "2_deploy@3"
},
{
"command": "azureFunctions.validateFunctionApp",
"group": "3_validate@1"
}
],
"view/title": [
Expand Down Expand Up @@ -526,6 +558,31 @@
"when": "view == azureWorkspace && viewItem =~ /azFuncLocalProject/i",
"group": "1@2"
},
{
"command": "azureFunctions.smartDeploy",
"when": "view == azureWorkspace && viewItem =~ /azFuncLocalProject/i",
"group": "inline"
},
{
"command": "azureFunctions.smartDeploy",
"when": "view == azureWorkspace && viewItem =~ /azFuncLocalProject/i",
"group": "1@2b"
},
Comment on lines +637 to +646
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

smartDeploy is registered twice for the same view item (inline + 1@2b); runFunctionApp below is duplicated the same way. Each command will appear twice in the context menu.

{
"command": "azureFunctions.validateFunctionApp",
"when": "view == azureWorkspace && viewItem =~ /azFuncLocalProject/i",
"group": "1@3"
},
{
"command": "azureFunctions.runFunctionApp",
"when": "view == azureWorkspace && viewItem =~ /azFuncLocalProject/i",
"group": "inline"
},
{
"command": "azureFunctions.runFunctionApp",
"when": "view == azureWorkspace && viewItem =~ /azFuncLocalProject/i",
"group": "1@1b"
},
{
"command": "azureFunctions.createFunctionApp",
"when": "view == azureResourceGroups && viewItem =~ /functionapp/i && viewItem =~ /azureResourceTypeGroup/i",
Expand Down Expand Up @@ -858,6 +915,21 @@
}
],
"explorer/context": [
{
"command": "azureFunctions.runFunctionApp",
"when": "explorerResourceIsFolder == true",
"group": "zzz_azurefunctions@1"
},
{
"command": "azureFunctions.smartDeploy",
"when": "explorerResourceIsFolder == true",
"group": "zzz_azurefunctions@2"
},
{
"command": "azureFunctions.validateFunctionApp",
"when": "explorerResourceIsFolder == true",
"group": "zzz_azurefunctions@3"
},
{
"command": "azureFunctions.addBinding",
"when": "resourceFilename==function.json",
Expand Down Expand Up @@ -956,7 +1028,24 @@
"group": "zzz_binding@1"
}
],
"editor/title/run": [
{
"command": "azureFunctions.runFunctionApp",
"when": "resourceExtname == '.py' && !isInDiffEditor",
"group": "navigation@1"
}
],
"editor/title": [
{
"command": "azureFunctions.runFunctionApp",
"when": "editorIsOpen",
"group": "navigation@0"
},
{
"command": "azureFunctions.smartDeploy",
"when": "editorIsOpen",
"group": "navigation@1"
Comment on lines 1123 to +1132
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"when": "editorIsOpen" adds a "Run Function App" and "Deploy Function App" icon to the title bar of every open editor in VS Code, including unrelated workspaces. Needs to be gated on a Functions-project context (e.g. azureFunctions.projectLanguage), and arguably shouldn't be in editor/title at all.

},
{
"command": "azureFunctions.eventGrid.sendMockRequest",
"arguments": [
Expand Down Expand Up @@ -1388,6 +1477,34 @@
"%azureFunctions.mcpProjectType.McpExtensionServer%",
"%azureFunctions.mcpProjectType.SelfHostedMcpServer%"
]
},
"azureFunctions.projectTemplates.manifestUrl": {
"type": "string",
"default": "https://aka.ms/azfunc-project-templates-manifest",
"description": "%azureFunctions.projectTemplates.manifestUrl%"
Comment thread
gavin-aguiar marked this conversation as resolved.
},
"azureFunctions.projectTemplates.additionalManifestUrls": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "%azureFunctions.projectTemplates.additionalManifestUrls%"
},
"azureFunctions.projectTemplates.cacheExpirationHours": {
"type": "number",
"default": 24,
"description": "%azureFunctions.projectTemplates.cacheExpirationHours%"
},
"azureFunctions.projectTemplates.preferTemplateFlow": {
"type": "boolean",
"default": true,
"description": "%azureFunctions.projectTemplates.preferTemplateFlow%"
},
"azureFunctions.projectTemplates.showBicepPrompt": {
"type": "boolean",
"default": true,
"description": "%azureFunctions.projectTemplates.showBicepPrompt%"
}
}
}
Expand Down Expand Up @@ -1491,6 +1608,7 @@
"@microsoft/vscode-azext-utils": "^4.0.3",
"@microsoft/vscode-azureresources-api": "^2.6.2",
"@microsoft/vscode-container-client": "^0.3.0",
"@vscode/codicons": "^0.0.44",
"cross-fetch": "^4.0.0",
"escape-string-regexp": "^4.0.0",
"extract-zip": "^2.0.1",
Expand Down
10 changes: 9 additions & 1 deletion package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,16 @@
"azureFunctions.durableTaskScheduler.emulatorTag": "The tag of the Durable Task Scheduler emulator image.",
"azureFunctions.showBallerinaProjectCreation": "Show the option to create a Ballerina Function projects when creating a new Function project.",
"azureFunctions.getMcpHostKey": "Retrieve the MCP host key for the Function App specified by the resource ID.",
"azureFunctions.validateFunctionApp": "Validate Function App (Copilot)",
"azureFunctions.smartDeploy": "Deploy Function App",
"azureFunctions.runFunctionApp": "Run Function App",
"azureFunctions.mcpProjectType": "The type of MCP integration the project uses.",
"azureFunctions.mcpProjectType.NoMcpServer": "Runs the standard Azure Functions runtime with no MCP integration.",
"azureFunctions.mcpProjectType.McpExtensionServer": "Runs the Functions host with an embedded MCP server provided by the Azure Functions MCP extension.",
"azureFunctions.mcpProjectType.SelfHostedMcpServer": "Runs the Functions host in custom-handler mode, forwarding requests to a self-hosted MCP server process."
"azureFunctions.mcpProjectType.SelfHostedMcpServer": "Runs the Functions host in custom-handler mode, forwarding requests to a self-hosted MCP server process.",
"azureFunctions.projectTemplates.manifestUrl": "URL of the project template manifest. Organizations can host custom manifests to provide team-specific templates.",
"azureFunctions.projectTemplates.additionalManifestUrls": "Additional template manifest URLs to merge with the primary manifest.",
"azureFunctions.projectTemplates.cacheExpirationHours": "Template manifest cache expiration time in hours.",
"azureFunctions.projectTemplates.preferTemplateFlow": "Pre-select 'Start from template' in the project creation wizard.",
"azureFunctions.projectTemplates.showBicepPrompt": "Prompt to deploy infrastructure when templates include Bicep files."
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing trailing comma β€” this breaks package.nls.json parsing and all NLS resolution.

}
Loading
Loading