diff --git a/editors/vscode/Makefile b/editors/vscode/Makefile index 127deddd849b..67344d9650c1 100644 --- a/editors/vscode/Makefile +++ b/editors/vscode/Makefile @@ -1,322 +1,322 @@ PORTNAME= vscode DISTVERSION= ${VSCODE_VERSION} -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= editors MASTER_SITES= https://github.com/tagattie/FreeBSD-VSCode/releases/download/${DISTVERSION}/:node_modules DISTFILES= vscode-node-modules-${DISTVERSION}${EXTRACT_SUFX}:node_modules \ vscode-marketplace-exts-${DISTVERSION}${EXTRACT_SUFX}:node_modules DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Visual Studio Code - Open Source ("Code - OSS") WWW= https://code.visualstudio.com/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt ONLY_FOR_ARCHS= amd64 EXTRACT_DEPENDS=jq:textproc/jq \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} BUILD_DEPENDS= zip:archivers/zip \ electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \ jq:textproc/jq \ rg:textproc/ripgrep \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libasound.so:audio/alsa-lib \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libsndio.so:audio/sndio \ libdbus-1.so:devel/dbus \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libpcre2-8.so:devel/pcre2 \ libre2.so:devel/re2 \ liblcms2.so:graphics/lcms2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libvpx.so:multimedia/libvpx \ libopenh264.so:multimedia/openh264 \ libpipewire-0.3.so:multimedia/pipewire \ libcups.so:print/cups \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils \ bash:shells/bash TEST_DEPENDS= electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \ bash:shells/bash USES= desktop-file-utils display:test gl gmake gnome gssapi:mit \ iconv:wchar_t jpeg localbase:ldflags nodejs:22,build pkgconfig \ python:build shebangfix xorg USE_GITHUB= yes GH_ACCOUNT= microsoft BINARY_ALIAS= python=${PYTHON_CMD} USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xkbfile \ xrandr xrender xscrnsaver xtst USE_GL= gbm gl glesv2 USE_GNOME= atk cairo pango gdkpixbuf gtk30 libxml2 libxslt SHEBANG_REGEX= ./(extensions|node_modules|resources|scripts|src)/.*(\.(pl|py|sh)|makeBlacker|makeFF)$$ PATHFIX_FILES= src/vs/workbench/contrib/debug/node/terminals.ts DATADIR= ${PREFIX}/share/code-oss TMPDIR= ${WRKDIR} BUNDLE_LIBS= yes MAKE_ENV+= BUILD_SOURCEVERSION=${SOURCE_COMMIT_HASH} # Don't download electron binary distribution on electron node_modules installation MAKE_ENV+= ELECTRON_SKIP_BINARY_DOWNLOAD=1 # Don't download browser binaries on playwright node_modules installation MAKE_ENV+= PLAYWRIGHT_BROWSERS_PATH=${WRKDIR}/pw-browsers \ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 # Don't create __pycache__ directory when executing node-gyp # This is a workaround to avoid filesystem violations during poudriere build MAKE_ENV+= PYTHONDONTWRITEBYTECODE=1 TEST_ENV= ${MAKE_ENV:C/TMPDIR=.*//} .include "Makefile.version" .include NODEJS_DIR= ${.CURDIR:H:H}/www/node${NODEJS_VERSION} .include "${NODEJS_DIR}/Makefile.version" ELECTRON_DIR= ${.CURDIR:H:H}/devel/electron39 .include "${ELECTRON_DIR}/Makefile.version" ELECTRON_DOWNLOAD_URL= https://github.com/electron/electron/releases/download/v${ELECTRON_VER} ELECTRON_DOWNLOAD_URL_HASH!= /sbin/sha256 -q -s ${ELECTRON_DOWNLOAD_URL} ELECTRON_ARCH= ${ARCH:S/aarch64/arm64/:S/amd64/x64/:S/i386/ia32/} pre-everything:: @${ECHO_MSG} "" @${ECHO_MSG} "The limit imposed by poudriere(8) for the maximum number of files allowed to be" @${ECHO_MSG} "opened by a jail (default 1024) is exceeded during the build of ${PORTNAME}." @${ECHO_MSG} "To successfully build ${PORTNAME} with poudriere(8), you must add the following" @${ECHO_MSG} "line to poudriere.conf:" @${ECHO_MSG} "MAX_FILES_${PORTNAME}=8192" @${ECHO_MSG} "" post-extract: @${CP} ${WRKSRC}/build/.moduleignore.linux \ ${WRKSRC}/build/.moduleignore.freebsd @${ECHO_MSG} "===> Installing node modules in ${WRKSRC}" @${TAR} -xzf ${WRKDIR}/vscode-.-node-modules${EXTRACT_SUFX} -C ${WRKSRC} @for dir in `node --input-type=module -e "console.log(JSON.stringify((await import('${WRKSRC}/build/npm/dirs.ts')).dirs))" | jq -r '.[]'`; do \ if [ -f ${WRKDIR}/vscode-`echo $${dir} | tr _ __ | tr / _`-node-modules${EXTRACT_SUFX} ]; then \ ${ECHO_MSG} "===> Installing node modules in ${WRKSRC}/$${dir}"; \ ${TAR} -xzf ${WRKDIR}/vscode-`echo $${dir} | tr _ __ | tr / _`-node-modules${EXTRACT_SUFX} -C ${WRKSRC}/$${dir}; \ fi; \ done post-patch: @${REINPLACE_CMD} -E 's|^(target=").*(")$$|\1${ELECTRON_VER}\2|' \ ${WRKSRC}/.npmrc @${REINPLACE_CMD} -E 's|^(target=").*(")$$|\1${NODEJS_PORTVERSION}\2|' \ ${WRKSRC}/remote/.npmrc @${REINPLACE_CMD} -e 's/%%DISTVERSION%%/${DISTVERSION}/g' \ ${WRKSRC}/build/gulpfile.reh.ts \ ${WRKSRC}/build/gulpfile.vscode.ts @(cd ${WRKSRC} && \ ${FIND} -E . -type f -iregex '${SHEBANG_REGEX}' \ -exec ${SED} -i '' -e "s|/usr/bin/pgrep|/bin/pgrep|g" {} ';') @(cd ${WRKSRC} && \ ${FIND} ${PATHFIX_FILES} -type f \ -exec ${SED} -i '' -e "s|/usr/bin/pgrep|/bin/pgrep|g" {} ';') @${REINPLACE_CMD} -e 's/@@NAME_LONG@@/Code - OSS/; \ s/@@NAME_SHORT@@/Code - OSS/; \ s/@@PRODNAME@@/Code - OSS/; \ s/@@NAME@@/code-oss/g; \ s|@@EXEC@@|${PREFIX}/bin/code-oss|; \ s/@@ICON@@/com.visualstudio.code.oss/; \ s/@@URLPROTOCOL@@/code-oss/; \ s/@@LICENSE@@/MIT/; \ s/@@APPNAME@@/code-oss/g; \ s|/usr/share|${PREFIX}/share|' \ ${WRKSRC}/resources/completions/bash/code \ ${WRKSRC}/resources/completions/zsh/_code \ ${WRKSRC}/resources/linux/bin/code.sh \ ${WRKSRC}/resources/linux/code.appdata.xml \ ${WRKSRC}/resources/linux/code.desktop \ ${WRKSRC}/resources/linux/code-url-handler.desktop @(cd ${WRKDIR}/builtInExtensions && \ ${FIND} . -type f -name '*.sh' \ -exec ${SED} -i '' -e "s|/usr/bin/pgrep|/bin/pgrep|g" \ -e 's|#!/bin/bash|#!${LOCALBASE}/bin/bash|' {} ';') @${SETENV} FILESDIR=${FILESDIR} \ ${SH} ${FILESDIR}/update-product-json.sh ${WRKSRC} pre-build: # rebuild native node modules in top directory @for subdir in `${FIND} ${WRKSRC}/node_modules -type f -name binding.gyp -exec ${DIRNAME} {} ';'`; do \ ${ECHO_MSG} "===> Rebuilding native modules in $${subdir}"; \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=electron \ npm_config_target=${ELECTRON_VER} \ npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers \ node-gyp --userconfig=${WRKSRC}/.npmrc rebuild; \ done # rebuild native node modules in subdirectories @for dir in `node --input-type=module -e "console.log(JSON.stringify((await import('${WRKSRC}/build/npm/dirs.ts')).dirs))" | jq -r '.[]'`; do \ for subdir in `${FIND} ${WRKSRC}/$${dir}/node_modules -type f -name binding.gyp -exec ${DIRNAME} {} ';' 2> /dev/null`; do \ ${ECHO_MSG} "===> Rebuilding native modules in $${subdir}"; \ if [ "`${ECHO_CMD} $${subdir} | ${GREP} /build/`" ]; then \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=node \ npm_config_target=${NODEJS_PORTVERSION} \ npm_config_nodedir=${LOCALBASE} \ node-gyp --userconfig=${WRKSRC}/build/.npmrc rebuild; \ elif [ "`${ECHO_CMD} $${subdir} | ${GREP} /remote/`" ]; then \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=node \ npm_config_target=${NODEJS_PORTVERSION} \ npm_config_nodedir=${LOCALBASE} \ node-gyp --userconfig=${WRKSRC}/remote/.npmrc rebuild; \ else \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=electron \ npm_config_target=${ELECTRON_VER} \ npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers \ node-gyp --userconfig=${WRKSRC}/.npmrc rebuild; \ fi; \ done; \ done # copy rg binary file to @vscode/ripgrep node module directory @${MKDIR} ${WRKSRC}/node_modules/@vscode/ripgrep/bin @${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/node_modules/@vscode/ripgrep/bin @${MKDIR} ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin @${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin @${MKDIR} ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin @${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin do-build: # setup download cache for gulp-atom-electron @${MKDIR} ${WRKDIR}/.cache/electron/${ELECTRON_DOWNLOAD_URL_HASH} @cd ${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} && \ zip -q -r ${WRKDIR}/.cache/electron/${ELECTRON_DOWNLOAD_URL_HASH}/electron-v${ELECTRON_VER}-linux-${ELECTRON_ARCH}.zip . # remove backup files so that they are not included in the package @${FIND} ${WRKSRC} -type f \( -name '*.bak' -o -name '*.orig' -o -name '*~' \) -delete # build and package vscode cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=electron \ npm_config_target=${ELECTRON_VER} \ npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers \ npm --userconfig=${WRKSRC}/.npmrc run gulp vscode-linux-${ELECTRON_ARCH}-min # move marketplace extensions @${MV} ${WRKDIR}/builtInExtensions/* ${WRKDIR}/VSCode-linux-${ELECTRON_ARCH}/resources/app/extensions do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d ${INSTALL_DATA} ${WRKSRC}/resources/completions/bash/code \ ${STAGEDIR}${PREFIX}/etc/bash_completion.d/code-oss @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions ${INSTALL_DATA} ${WRKSRC}/resources/completions/zsh/_code \ ${STAGEDIR}${PREFIX}/share/zsh/site-functions/_code-oss @${MKDIR} ${STAGEDIR}${PREFIX}/share/appdata ${INSTALL_DATA} ${WRKSRC}/resources/linux/code.appdata.xml \ ${STAGEDIR}${PREFIX}/share/appdata/code-oss.appdata.xml @${MKDIR} ${STAGEDIR}${PREFIX}/share/applications .for f in code.desktop code-url-handler.desktop ${INSTALL_DATA} ${WRKSRC}/resources/linux/${f} \ ${STAGEDIR}${PREFIX}/share/applications/${f:S/code/code-oss/} .endfor @${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${INSTALL_DATA} ${WRKSRC}/resources/linux/code.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/com.visualstudio.code.oss.png @${MKDIR} ${STAGEDIR}${DATADIR} ${TAR} -cf - -C ${WRKDIR}/VSCode-linux-${ELECTRON_ARCH} . | \ ${TAR} -xf - -C ${STAGEDIR}${DATADIR} @${FIND} ${STAGEDIR}${DATADIR}/resources/app -type f -exec ${FILE} {} ';' | \ ${GREP} 'ELF.*FreeBSD' | ${AWK} -F ': ' '{print $$1}' | ${XARGS} ${STRIP_CMD} .for f in chromedriver mksnapshot v8_context_snapshot_generator @${RM} ${STAGEDIR}${DATADIR}/${f} .endfor @${RM} -r ${STAGEDIR}${DATADIR}/gen @${RM} -r ${STAGEDIR}${DATADIR}/node_headers @${RM} -r ${STAGEDIR}${DATADIR}/resources/completions ${RLN} ${STAGEDIR}${DATADIR}/bin/code-oss ${STAGEDIR}${PREFIX}/bin ${INSTALL_SCRIPT} ${FILESDIR}/wrapper.sh ${STAGEDIR}${PREFIX}/bin/${PORTNAME} pre-test: # setup electron dependency for unit tests @${MKDIR} ${WRKSRC}/.build/electron @${TAR} -cf - -C ${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} . | \ ${TAR} -xf - -C ${WRKSRC}/.build/electron @cd ${WRKSRC}/.build/electron && ${MV} -f electron code-oss do-test: # unit tests cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ./scripts/test.sh --build || ${TRUE} # UI smoke tests cd ${WRKSRC} && ${SETENV} ${TEST_ENV} npm run smoketest build-remote-extension-host: configure pre-build # setup download cache for node @${MKDIR} ${WRKSRC}/.build/node/v${NODEJS_PORTVERSION}/linux-${ELECTRON_ARCH} @${CP} ${LOCALBASE}/bin/node ${WRKSRC}/.build/node/v${NODEJS_PORTVERSION}/linux-${ELECTRON_ARCH} # build vscode remote extension host cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ npm_config_runtime=node \ npm_config_target=${NODEJS_PORTVERSION} \ npm_config_nodedir=${LOCALBASE} \ npm --userconfig=${WRKSRC}/remote/.npmrc run gulp vscode-reh-linux-${ELECTRON_ARCH}-min @${MKDIR} ${WRKDIR}/vscode-reh/bin/${SOURCE_COMMIT_HASH} ${TAR} -cf - -C ${WRKDIR}/vscode-reh-linux-${ELECTRON_ARCH} . | \ ${TAR} -xf - -C ${WRKDIR}/vscode-reh/bin/${SOURCE_COMMIT_HASH} @${FIND} ${WRKDIR}/vscode-reh -type f -exec ${FILE} {} ';' | \ ${GREP} 'ELF.*FreeBSD' | ${AWK} -F ': ' '{print $$1}' | ${XARGS} ${STRIP_CMD} ${TAR} -czf ${WRKDIR}/vscode-reh-${DISTVERSION}-${OPSYS:tl}${OSREL:R}-${ARCH}.tar.gz -C ${WRKDIR}/vscode-reh . # cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm run gulp vscode-reh-web-linux-${ELECTRON_ARCH}-min ### targets for port maintainer(s) patch-package-json: extract # add node module for signature verification of extensions from Open VSX Registry @${PATCH} -s -p0 -d ${WRKSRC} < ${FILESDIR}/patch-package.json make-node-modules-archive: extract patch-package-json @${ECHO_MSG} "===> Fetching and installing node modules in ${WRKSRC}" @cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} npm install \ --ignore-scripts --no-progress --no-audit --no-fund --no-update-notifier && \ ${TAR} -czf ${WRKDIR}/vscode-.-node-modules${EXTRACT_SUFX} node_modules @for dir in `node --input-type=module -e "console.log(JSON.stringify((await import('${WRKSRC}/build/npm/dirs.ts')).dirs))" | jq -r '.[]'`; do \ cd ${WRKSRC}/$${dir} && \ ${ECHO_MSG} "===> Fetching and installing node modules in ${WRKSRC}/$${dir}" && \ ${SETENV} ${MAKE_ENV} npm install \ --ignore-scripts --no-progress --no-audit --no-fund --no-update-notifier && \ if [ -d node_modules ]; then \ ${TAR} -czf ${WRKDIR}/vscode-`echo $${dir} | tr _ __ | tr / _`-node-modules${EXTRACT_SUFX} node_modules; \ fi; \ done @cd ${WRKDIR} && \ ${TAR} -czf vscode-node-modules-${DISTVERSION}${EXTRACT_SUFX} vscode-*-node-modules.tar.gz make-marketplace-exts-archive: extract @${RM} -r ${WRKSRC}/.build/builtInExtensions @cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} npm run download-builtin-extensions @${TAR} -czf ${WRKDIR}/vscode-marketplace-exts-${DISTVERSION}${EXTRACT_SUFX} -C ${WRKSRC}/.build builtInExtensions .include diff --git a/editors/vscode/files/product.json.extensions b/editors/vscode/files/product.json.extensions index 6b42ee37649f..f9470aca4a24 100644 --- a/editors/vscode/files/product.json.extensions +++ b/editors/vscode/files/product.json.extensions @@ -1,597 +1,604 @@ { "extensionAllowedBadgeProviders": [ "api.bintray.com", "api.travis-ci.com", "api.travis-ci.org", "app.fossa.io", "badge.buildkite.com", "badge.fury.io", "badge.waffle.io", "badgen.net", "badges.frapsoft.com", "badges.gitter.im", "badges.greenkeeper.io", "cdn.travis-ci.com", "cdn.travis-ci.org", "ci.appveyor.com", "circleci.com", "cla.opensource.microsoft.com", "codacy.com", "codeclimate.com", "codecov.io", "coveralls.io", "david-dm.org", "deepscan.io", "dev.azure.com", "docs.rs", "flat.badgen.net", "gemnasium.com", "githost.io", "gitlab.com", "godoc.org", "goreportcard.com", "img.shields.io", "isitmaintained.com", "marketplace.visualstudio.com", "nodesecurity.io", "opencollective.com", "snyk.io", "travis-ci.com", "travis-ci.org", "visualstudio.com", "vsmarketplacebadge.apphb.com", "www.bithound.io", "www.versioneye.com" ], "extensionAllowedBadgeProvidersRegex": [ "^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg" ], "extensionsEnabledWithApiProposalVersion": [ "GitHub.copilot-chat", "ms-vscode.vscode-commander", - "ms-vscode.vscode-copilot-vision", "GitHub.vscode-pull-request-github" ], "extensionEnabledApiProposals": { "ms-azuretools.vscode-containers": [ "authenticationChallenges" ], "ms-azuretools.vscode-azureresourcegroups": [ "authenticationChallenges" ], "ms-azuretools.vscode-azure-github-copilot": [ "authenticationChallenges" ], "ms-azuretools.vscode-dev-azurecloudshell": [ "contribEditSessions", "authenticationChallenges" ], "ms-toolsai.vscode-ai": [ "authenticationChallenges" ], "TeamsDevApp.vscode-ai-foundry": [ "authenticationChallenges" ], "ms-vscode.vscode-selfhost-test-provider": [ "testObserver", "testRelatedCode" ], "VisualStudioExptTeam.vscodeintellicode-completions": [ "inlineCompletionsAdditions" ], "ms-vsliveshare.vsliveshare": [ "contribMenuBarHome", "contribShareMenu", "contribStatusBarItems", "diffCommand", "documentFiltersExclusive", "fileSearchProvider", "findTextInFiles", "notebookLiveShare", "terminalDimensions", "terminalDataWriteEvent", "textSearchProvider" ], "ms-vscode.js-debug": [ "portsAttributes", "findTextInFiles", "workspaceTrust", "tunnels" ], "ms-toolsai.vscode-ai-remote": [ "resolvers", "authenticationChallenges" ], "ms-python.python": [ "codeActionAI", "contribEditorContentMenu", "quickPickSortByLabel", "portsAttributes", "testObserver", "quickPickItemTooltip", "terminalDataWriteEvent", "terminalExecuteCommandEvent", "notebookReplDocument", "notebookVariableProvider", "terminalShellEnv" ], "ms-python.vscode-python-envs": [ "terminalShellEnv", "terminalDataWriteEvent" ], "ms-dotnettools.dotnet-interactive-vscode": [ "notebookMessaging" ], "GitHub.codespaces": [ "contribEditSessions", "contribMenuBarHome", "contribRemoteHelp", "contribViewsRemote", "resolvers", "tunnels", "terminalDataWriteEvent", "treeViewReveal", "notebookKernelSource" ], "ms-vscode.azure-repos": [ "extensionRuntime", "fileSearchProvider", "textSearchProvider" ], "ms-vscode.remote-repositories": [ "canonicalUriProvider", "contribEditSessions", "contribRemoteHelp", "contribMenuBarHome", "contribViewsRemote", "contribViewsWelcome", "contribShareMenu", "documentFiltersExclusive", "editSessionIdentityProvider", "extensionRuntime", "fileSearchProvider", "quickPickSortByLabel", "workspaceTrust", "shareProvider", "scmActionButton", "scmSelectedProvider", "scmValidation", "textSearchProvider", "timeline" ], "ms-vscode-remote.remote-wsl": [ "resolvers", "contribRemoteHelp", "contribViewsRemote", "telemetry" ], "ms-vscode-remote.remote-ssh": [ "resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote", "telemetry" ], "ms-vscode.remote-server": [ "resolvers", "tunnels", "contribViewsWelcome" ], "ms-vscode.remote-explorer": [ "contribRemoteHelp", "contribViewsRemote", "extensionsAny" ], "ms-vscode-remote.remote-containers": [ "contribEditSessions", "resolvers", "portsAttributes", "tunnels", "workspaceTrust", "terminalDimensions", "contribRemoteHelp", "contribViewsRemote" ], "ms-vscode.js-debug-nightly": [ "portsAttributes", "findTextInFiles", "workspaceTrust", "tunnels" ], "ms-vscode.lsif-browser": [ "documentFiltersExclusive" ], "ms-vscode.vscode-speech": [ "speech" ], "GitHub.vscode-pull-request-github": [ "activeComment", + "chatContextProvider", "chatParticipantAdditions", "chatParticipantPrivate", "chatSessionsProvider", "codiconDecoration", "codeActionRanges", "commentingRangeHint", "commentReactor", "commentReveal", + "commentsDraftState", "commentThreadApplicability", "contribAccessibilityHelpContent", "contribCommentEditorActionsMenu", "contribCommentPeekContext", "contribCommentThreadAdditionalMenu", "contribCommentsViewThreadMenus", "contribEditorContentMenu", "contribMultiDiffEditorMenus", "contribShareMenu", "diffCommand", "languageModelToolResultAudience", "markdownAlertSyntax", "quickDiffProvider", "remoteCodingAgents", "shareProvider", "tabInputTextMerge", "tokenInformation", "treeItemMarkdownLabel", "treeViewMarkdownMessage" ], "GitHub.copilot": [ "inlineCompletionsAdditions", + "interactive", + "terminalDataWriteEvent", "devDeviceId" ], "GitHub.copilot-nightly": [ "inlineCompletionsAdditions", + "interactive", + "terminalDataWriteEvent", "devDeviceId" ], "GitHub.copilot-chat": [ "interactive", "terminalDataWriteEvent", "terminalExecuteCommandEvent", "terminalSelection", "terminalQuickFixProvider", "chatParticipantAdditions", "defaultChatParticipant", "embeddings", "chatEditing", "chatProvider", "mappedEditsProvider", "aiRelatedInformation", "aiSettingsSearch", "codeActionAI", "findTextInFiles", "findTextInFiles2", "textSearchProvider", "textSearchProvider2", "activeComment", "commentReveal", "contribSourceControlInputBoxMenu", "contribCommentEditorActionsMenu", "contribCommentThreadAdditionalMenu", "contribCommentsViewThreadMenus", "newSymbolNamesProvider", "findFiles2", "chatReferenceDiagnostic", "extensionsAny", "authLearnMore", "testObserver", "aiTextSearchProvider", "documentFiltersExclusive", "chatParticipantPrivate", "contribDebugCreateConfiguration", "inlineCompletionsAdditions", "chatReferenceBinaryData", "languageModelSystem", "languageModelCapabilities", "languageModelThinkingPart", "chatStatusItem", "taskProblemMatcherStatus", "contribLanguageModelToolSets", "textDocumentChangeReason", "resolvers", "taskExecutionTerminal", "dataChannels", "chatSessionsProvider", "devDeviceId", - "contribEditorContentMenu" + "contribEditorContentMenu", + "tokenInformation" ], "GitHub.remotehub": [ "contribRemoteHelp", "contribMenuBarHome", "contribViewsRemote", "contribViewsWelcome", "documentFiltersExclusive", "extensionRuntime", "fileSearchProvider", "quickPickSortByLabel", "workspaceTrust", "scmSelectedProvider", "scmValidation", "textSearchProvider", "timeline" ], "ms-python.vscode-pylance": [ "terminalShellEnv", - "portsAttributes" + "portsAttributes", + "codeActionAI" ], "ms-python.debugpy": [ "contribViewsWelcome", "debugVisualization", "portsAttributes" ], "ms-toolsai.jupyter-renderers": [ "contribNotebookStaticPreloads" ], "ms-toolsai.jupyter": [ "notebookDeprecated", "notebookMessaging", "notebookMime", "portsAttributes", "quickPickSortByLabel", "notebookKernelSource", "interactiveWindow", "notebookControllerAffinityHidden", "contribNotebookStaticPreloads", "quickPickItemTooltip", "notebookExecution", "notebookCellExecution", "notebookVariableProvider", "notebookReplDocument" ], "donjayamanne.kusto": [ "notebookVariableProvider" ], "ms-toolsai.tensorboard": [ "portsAttributes" ], "dbaeumer.vscode-eslint": [], "ms-vscode.azure-sphere-tools-ui": [ "tunnels" ], "ms-azuretools.vscode-azureappservice": [ "terminalDataWriteEvent" ], "ms-vscode.anycode": [ "extensionsAny" ], "ms-vscode.cpptools": [ "terminalDataWriteEvent", "chatParticipantAdditions" ], - "vscjava.vscode-java-pack": [], "ms-dotnettools.csdevkit": [ "inlineCompletionsAdditions" ], "ms-dotnettools.vscodeintellicode-csharp": [ "inlineCompletionsAdditions" ], "microsoft-IsvExpTools.powerplatform-vscode": [ "fileSearchProvider", "textSearchProvider" ], "microsoft-IsvExpTools.powerplatform-vscode-preview": [ "fileSearchProvider", "textSearchProvider" ], "TeamsDevApp.ms-teams-vscode-extension": [ "chatParticipantAdditions", "languageModelSystem" ], - "ms-toolsai.datawrangler": [], - "ms-vscode.vscode-commander": [], - "ms-vscode.vscode-websearchforcopilot": [], "ms-vscode.vscode-copilot-vision": [ "chatReferenceBinaryData", "codeActionAI" ], "ms-autodev.vscode-autodev": [ "chatParticipantAdditions" ], + "codetrek.haystack-search": [ + "fileSearchProvider", + "textSearchProvider2" + ], "vscjava.vscode-java-upgrade": [ "chatParticipantAdditions", "chatParticipantPrivate" ], "FoundryLocal.foundry-local-chat": [ "chatProvider" ], "Microsoft.foundry-local-chat": [ "chatProvider" ], "ms-wmcp.windows-mcp-server-extension": [ "mcpToolDefinitions" ], "openai.chatgpt": [ "languageModelProxy", "chatSessionsProvider" ], "jeanp413.open-remote-ssh": [ "resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote" ], "jeanp413.open-remote-wsl": [ "resolvers", "contribRemoteHelp", "contribViewsRemote" ] }, "extensionKind": { "Shan.code-settings-sync": [ "ui" ], "shalldie.background": [ "ui" ], "techer.open-in-browser": [ "ui" ], "CoenraadS.bracket-pair-colorizer-2": [ "ui" ], "CoenraadS.bracket-pair-colorizer": [ "ui", "workspace" ], "hiro-sun.vscode-emacs": [ "ui", "workspace" ], "hnw.vscode-auto-open-markdown-preview": [ "ui", "workspace" ], "wayou.vscode-todo-highlight": [ "ui", "workspace" ], "aaron-bond.better-comments": [ "ui", "workspace" ], "vscodevim.vim": [ "ui" ], "ollyhayes.colmak-vim": [ "ui" ] }, "extensionPointExtensionKind": { "typescriptServerPlugins": [ "workspace" ] }, "extensionSyncedKeys": { "ritwickdey.liveserver": [ "liveServer.setup.version" ] }, "extensionVirtualWorkspacesSupport": { "esbenp.prettier-vscode": { "default": false }, "msjsdiag.debugger-for-chrome": { "default": false }, "redhat.java": { "default": false }, "HookyQR.beautify": { "default": false }, "ritwickdey.LiveServer": { "default": false }, "VisualStudioExptTeam.vscodeintellicode": { "default": false }, "octref.vetur": { "default": false }, "formulahendry.code-runner": { "default": false }, "xdebug.php-debug": { "default": false }, "ms-mssql.mssql": { "default": false }, "christian-kohler.path-intellisense": { "default": false }, "eg2.tslint": { "default": false }, "eg2.vscode-npm-script": { "default": false }, "donjayamanne.githistory": { "default": false }, "Zignd.html-css-class-completion": { "default": false }, "christian-kohler.npm-intellisense": { "default": false }, "EditorConfig.EditorConfig": { "default": false }, "austin.code-gnu-global": { "default": false }, "johnpapa.Angular2": { "default": false }, "ms-vscode.vscode-typescript-tslint-plugin": { "default": false }, "DotJoshJohnson.xml": { "default": false }, "techer.open-in-browser": { "default": false }, "tht13.python": { "default": false }, "bmewburn.vscode-intelephense-client": { "default": false }, "Angular.ng-template": { "default": false }, "xdebug.php-pack": { "default": false }, "dbaeumer.jshint": { "default": false }, "yzhang.markdown-all-in-one": { "default": false }, "Dart-Code.flutter": { "default": false }, "streetsidesoftware.code-spell-checker": { "default": false }, "rebornix.Ruby": { "default": false }, "ms-vscode.sublime-keybindings": { "default": false }, "mitaki28.vscode-clang": { "default": false }, "steoates.autoimport": { "default": false }, "donjayamanne.python-extension-pack": { "default": false }, "shd101wyy.markdown-preview-enhanced": { "default": false }, "mikestead.dotenv": { "default": false }, "pranaygp.vscode-css-peek": { "default": false }, "ikappas.phpcs": { "default": false }, "platformio.platformio-ide": { "default": false }, "jchannon.csharpextensions": { "default": false }, "gruntfuggly.todo-tree": { "default": false } } }