Compare commits

..

25 Commits

Author SHA1 Message Date
Baptiste Augrain
3cf93c6ded enhance: update apis 2022-12-08 20:22:27 +01:00
Baptiste Augrain
12121c9c9b Merge branch 'insider' 2022-12-08 19:54:34 +01:00
VSCodium CI
5d3b20bf8f build(insider): update to commit b928944 2022-12-08 08:17:37 +01:00
VSCodium CI
b57285ebae build(insider): update to commit 5235c6b 2022-12-06 08:16:53 +01:00
Baptiste Augrain
a31e11a51e feat: add default apis for open-remote-ssh (#1344) 2022-12-02 22:22:58 +01:00
Baptiste Augrain
ee8c7f094a fix: remove recommendationsUrl 2022-12-02 20:31:45 +01:00
eugen-auschew
078ce9427f docs: changed packagename in docs.md for ApplePressAndHoldEnabled setting (#1341)
Co-authored-by: eauw <info@ea-it.de>
2022-11-30 14:02:35 +01:00
VSCodium CI
f781310c69 build(insider): update to commit d0e44be 2022-11-26 08:11:48 +01:00
Simon Sobisch
33b563c334 Merge pull request #1330 from VSCodium/docs-extensions
update concerning extension gallery
2022-11-24 20:56:04 +01:00
VSCodium CI
71277ceb29 build(insider): update to commit 2eca6d3 2022-11-24 08:22:11 +01:00
Baptiste Augrain
8b260dc895 fix(insider): update patches 2022-11-23 21:52:51 +01:00
Baptiste Augrain
25985ec81b fix(insider): test before using getPreferredSystemLanguages
closes #1335
2022-11-21 15:51:03 +01:00
VSCodium CI
50313cace5 build(insider): update to commit fef85ea 2022-11-21 08:11:50 +01:00
Baptiste Augrain
61ab6ebb68 build: add title to github's release 2022-11-20 00:42:22 +01:00
Baptiste Augrain
ef0a3400d5 fix: update patch 2022-11-18 10:36:13 +01:00
Baptiste Augrain
1bfa2d920c fix: update patch 2022-11-17 22:56:46 +01:00
VSCodium CI
7ecd465204 build(insider): update to commit 3fb8e8f 2022-11-15 08:10:09 +01:00
Simon Sobisch
c57d5aa768 update concerning extension gallery 2022-11-12 14:59:47 +01:00
Baptiste Augrain
5c3db580d5 feat(1.74): support windows 7 (#1329) 2022-11-12 10:14:22 +01:00
Baptiste Augrain
de28e119be feat(1.74): update custom gallery patch 2022-11-12 10:09:54 +01:00
Pavlo Rudy
522300a657 feat(issue): add sandbox info [skip ci] 2022-11-11 12:02:38 +02:00
Baptiste Augrain
d0b246a9e1 fix: update patches 2022-11-10 18:36:08 +01:00
Baptiste Augrain
1b48e182cb Merge branch 'master' into insider 2022-11-10 18:20:15 +01:00
Baptiste Augrain
ab5bc94dc5 Merge branch 'master' into insider 2022-11-05 13:01:29 +01:00
Baptiste Augrain
0a4c9f8822 fix: disable windows' appx (#1321) 2022-11-04 12:48:12 +01:00
15 changed files with 204 additions and 140 deletions

View File

@@ -34,6 +34,7 @@ If applicable, add screenshots to help explain your problem.
- Architecture [e.g. x64, ia32, arm64]
- Version [e.g. 1.33.0]
- App Manager [e.g. Winget, Homebrew, Snap, AUR, RPM, Nix, ...]
- Sandboxed [e.g. no, Flatpak, Snap]
**Additional context**
Add any other context about the problem here.

51
DOCS.md
View File

@@ -45,51 +45,70 @@ Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Exten
## <a id="extensions-marketplace"></a>Extensions + Marketplace
### <a id="howto-openvsx-marketplace"></a>How to use the OpenVSX Marketplace
Being a vscode based editor, VSCodium gets additional features by installing VS Code extensions.
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use VS Code extensions in non-Microsoft products those need to be installed differently.
By default the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix).
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
You can switch and use the VS Code marketplace by using the following solutions. However, note that [ this is not legal](https://github.com/microsoft/vscode/issues/31168).
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
With the following environment variables:
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
- `VSCODE_GALLERY_CONTROL_URL=''`
- `VSCODE_GALLERY_RECOMMENDATIONS_URL=''`
Or by creating a custom `product.json` at the following location:
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
- macOS: `~/Library/Application Support/VSCodium`
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
with the content:
```json
```jsonc
{
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"itemUrl": "https://marketplace.visualstudio.com/items",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", // set to empty string for every other extension gallery
"controlUrl": "",
"recommendationsUrl": ""
}
}
```
### <a id="howto-selfhost-marketplace"></a>How to self-host your own VS Code Marketplace
### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own VS Code Marketplace using the [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project.
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery. In all of these cases you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
There are likely other options, but the following were reported to work:
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicit forbid to use them in non-Microsoft products, along with using telemetry.
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
@@ -102,7 +121,7 @@ A workaround exists to get debugging working in C# projects, by using Samsung's
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
```json
```jsonc
"extensionAllowedProposedApi": [
// ...
"ms-vscode-remote.vscode-remote-extensionpack",
@@ -172,7 +191,7 @@ inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
```bash
$ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
```
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?

View File

@@ -60,6 +60,7 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then
rm -rf vscode* VSCode*
. get_repo.sh
. version.sh
# save variables for later
echo "MS_TAG=\"${MS_TAG}\"" > build.env

View File

@@ -30,4 +30,6 @@ fi
APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'`
APIS=`echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribViewsRemote"]}'`
cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json

View File

@@ -1,21 +1,50 @@
#!/bin/bash
export VSCODE_QUALITY="stable"
while getopts ":ilp" opt; do
case "$opt" in
i)
export VSCODE_QUALITY="insider"
;;
esac
done
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
for file in ../patches/*.patch; do
if [ -f "${file}" ]; then
echo applying patch: "${file}"
git apply --ignore-whitespace "${file}"
for FILE in ../patches/*.patch; do
if [ -f "${FILE}" ]; then
echo applying patch: "${FILE}"
git apply --ignore-whitespace "${FILE}"
if [ $? -ne 0 ]; then
echo failed to apply patch "${file}"
git apply --reject "${file}"
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
read -p "Press any key when the conflict have been resolved..." -n1 -s
git diff -U1 > "${file}"
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for FILE in ../patches/insider/*.patch; do
if [ -f "${FILE}" ]; then
echo applying patch: "${FILE}"
git apply --ignore-whitespace "${FILE}"
if [ $? -ne 0 ]; then
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
read -p "Press any key when the conflict have been resolved..." -n1 -s
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
done
fi

View File

@@ -1,4 +1,4 @@
{
"tag": "1.73.0",
"commit": "8fa188b2b301d36553cbc9ce1b0a146ccb93351f"
"tag": "1.75.0",
"commit": "b92894493e6f971a3c71912d823e699d3a05d643"
}

View File

@@ -1,78 +1,69 @@
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 3907bc7..1772769 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -88,3 +88,3 @@
"editor.defaultFormatter": "vscode.typescript-language-features",
- "editor.formatOnSave": true
+ // "editor.formatOnSave": true
},
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 980f647..959fb88 100644
index f3cdbff..ac7c39b 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -245,4 +245,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -246,4 +246,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const name = product.nameShort;
+ const release = packageJson.release;
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined }));
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined }));
@@ -251,3 +252,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -252,3 +253,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version }));
+ .pipe(json({ commit, date, version, release }));
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 6947d1e..80f358e 100644
index cdc802b..49ab315 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -224,3 +224,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -227,3 +227,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
- let version = packageJson.version;
+ let version = packageJson.version
const quality = product.quality;
@@ -232,3 +232,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -235,3 +235,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const name = product.nameShort;
- const packageJsonUpdates = { name, version };
+ const release = packageJson.release;
+ const packageJsonUpdates = { name, version, release };
@@ -243,3 +244,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -246,3 +247,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version };
+ const productJsonUpdate = { commit, date, checksums, version, release };
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 4a25ca5..ca33d2e 100644
index cdc8870..f6e4e09 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -24,4 +24,2 @@ const commit = util.getVersion(root);
@@ -25,4 +25,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -87,3 +85,3 @@ function prepareDebPackage(arch) {
@@ -88,3 +86,3 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -192,4 +190,3 @@ function prepareRpmPackage(arch) {
@@ -193,4 +191,3 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@ICON@@', product.linuxIconName))
- .pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -266,3 +263,3 @@ function prepareSnapPackage(arch) {
@@ -267,3 +264,3 @@ function prepareSnapPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
// Possible run-on values https://snapcraft.io/docs/architectures
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 81ba509..43f5377 100644
index 0d3abda..2606af5 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -93,4 +93,4 @@ function buildWin32Setup(arch, target) {
@@ -94,4 +94,4 @@ function buildWin32Setup(arch, target) {
DirName: product.win32DirName,
- Version: pkg.version,
- RawVersion: pkg.version.replace(/-\w+$/, ''),
@@ -89,7 +80,7 @@ index 61659d2..5cafa06 100644
+Release: el7
Summary: Code editing. Redefined.
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index e07695c..55ccc32 100644
index 7ec238b..9295018 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -34,2 +34,3 @@ export interface IProductConfiguration {
@@ -97,22 +88,22 @@ index e07695c..55ccc32 100644
+ readonly release: string;
readonly date?: string;
diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts
index 66e35c8..087c055 100644
index 561966b..30814a0 100644
--- a/src/vs/platform/diagnostics/node/diagnosticsService.ts
+++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts
@@ -238,3 +238,3 @@ export class DiagnosticsService implements IDiagnosticsService {
@@ -236,3 +236,3 @@ export class DiagnosticsService implements IDiagnosticsService {
const output: string[] = [];
- output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
+ output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`);
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index bceda01..4fe44e2 100644
index ef798fa..cfa7866 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -49,6 +49,7 @@ else if (typeof require?.__$__nodeRequire === 'function') {
@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
if (!product.version) {
- const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string };
+ const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string, release: string };
- const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string };
+ const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string, release: string };
Object.assign(product, {
- version: pkg.version
@@ -120,19 +111,19 @@ index bceda01..4fe44e2 100644
+ release: pkg.release
});
diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
index ec4ff95..2ed2c03 100644
index 6a3768d..023eeed 100644
--- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
+++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
@@ -22,2 +22,3 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/markdownRenderer';
@@ -21,2 +21,3 @@ import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/mar
import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaultInputBoxStyles } from 'vs/platform/theme/browser/defaultStyles';
+import { getReleaseString } from 'vs/workbench/common/release';
@@ -145,2 +146,4 @@ export class BrowserDialogHandler implements IDialogHandler {
@@ -147,2 +148,4 @@ export class BrowserDialogHandler implements IDialogHandler {
const detailString = (useAgo: boolean): string => {
+ const releaseString = getReleaseString();
+
return localize('aboutDetail',
@@ -151,3 +154,3 @@ export class BrowserDialogHandler implements IDialogHandler {
@@ -153,3 +156,3 @@ export class BrowserDialogHandler implements IDialogHandler {
navigator.userAgent
- );
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);

View File

@@ -1,20 +1,21 @@
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index bceda01..174c766 100644
index ef798fa..5a0550b 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -6,3 +6,3 @@
import { FileAccess } from 'vs/base/common/network';
@@ -5,3 +5,4 @@
-import { globals } from 'vs/base/common/platform';
+import { AppResourcePath, FileAccess } from 'vs/base/common/network';
+import { globals, isWindows } from 'vs/base/common/platform';
import { env } from 'vs/base/common/process';
@@ -11,2 +11,3 @@ import { dirname, joinPath } from 'vs/base/common/resources';
@@ -9,2 +10,3 @@ import { IProductConfiguration } from 'vs/base/common/product';
import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes';
+import { getUserDataPath } from 'vs/platform/environment/node/userDataPath';
@@ -35,2 +36,41 @@ else if (typeof require?.__$__nodeRequire === 'function') {
@@ -29,2 +31,40 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ // Set user-defined extension gallery
+ const { serviceUrl, searchUrl, itemUrl, controlUrl, recommendationsUrl } = product.extensionsGallery || {}
+ const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {}
+
+ Object.assign(product, {
+ extensionsGallery: {
@@ -22,7 +23,6 @@ index bceda01..174c766 100644
+ searchUrl: env['VSCODE_GALLERY_SEARCH_URL'] || searchUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ recommendationsUrl: env['VSCODE_GALLERY_RECOMMENDATIONS_URL'] || recommendationsUrl
+ }
+ })
+
@@ -46,7 +46,7 @@ index bceda01..174c766 100644
+ const userDataPath = getUserDataPath({} as any, product.nameShort);
+ const userProductPath = isWindows ? `file:///${userDataPath}/product.json` : `file://${userDataPath}/product.json`;
+
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath, require).fsPath);
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath as AppResourcePath).fsPath);
+
+ product = merge(product, userProduct);
+ } catch (ex) {

View File

@@ -1,21 +1,9 @@
diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts
index c9501cb..a6958ff 100644
index 3b8a644..71ea0ad 100644
--- a/src/vs/platform/windows/electron-main/windowImpl.ts
+++ b/src/vs/platform/windows/electron-main/windowImpl.ts
@@ -42,7 +42,6 @@ import { Color } from 'vs/base/common/color';
import { IPolicyService } from 'vs/platform/policy/common/policy';
import { IUserDataProfile } from 'vs/platform/userDataProfile/common/userDataProfile';
import { IStateMainService } from 'vs/platform/state/electron-main/state';
-import product from 'vs/platform/product/common/product';
import { IUserDataProfilesMainService } from 'vs/platform/userDataProfile/electron-main/userDataProfile';
export interface IWindowCreationOptions {
@@ -203,7 +202,7 @@ export class CodeWindow extends Disposable implements ICodeWindow {
if (typeof windowSettings?.experimental?.useSandbox === 'boolean') {
useSandbox = windowSettings.experimental.useSandbox;
} else {
- useSandbox = typeof product.quality === 'string' && product.quality !== 'stable';
+ useSandbox = false;
@@ -213,4 +213,2 @@ export class CodeWindow extends Disposable implements ICodeWindow {
useSandbox = true;
- } else {
- useSandbox = typeof this.productService.quality === 'string' && this.productService.quality !== 'stable';
}
const options: BrowserWindowConstructorOptions & { experimentalDarkMode: boolean } = {

View File

@@ -0,0 +1,15 @@
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 0d3abda..9e5143a 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -116,6 +116,6 @@ function buildWin32Setup(arch, target) {
- if (quality === 'insider') {
- definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`;
- definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
- }
+ // if (quality === 'insider') {
+ // definitions['AppxPackage'] = `code_insiders_explorer_${arch === 'ia32' ? 'x86' : arch}.appx`;
+ // definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
+ // }

View File

@@ -1,18 +1,19 @@
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
index 830e698..cd6f27e 100644
index e1f766d..4f11dbe 100644
--- a/extensions/github-authentication/src/githubServer.ts
+++ b/extensions/github-authentication/src/githubServer.ts
@@ -7,4 +7,2 @@ import * as vscode from 'vscode';
import fetch, { Response } from 'node-fetch';
-import { v4 as uuid } from 'uuid';
@@ -6,4 +6,2 @@
import * as vscode from 'vscode';
-import * as path from 'path';
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
import { ExperimentationTelemetry } from './experimentationService';
@@ -12,13 +10,4 @@ import { AuthProviderType } from './github';
import { ExperimentationTelemetry } from './common/experimentationService';
@@ -11,14 +9,6 @@ import { AuthProviderType, UriEventHandler } from './github';
import { Log } from './common/logger';
-import { isSupportedEnvironment } from './common/env';
-import { LoopbackAuthServer } from './authServer';
-import path = require('path');
-
-import { LoopbackAuthServer } from './node/authServer';
-import { crypto } from './node/crypto';
import { fetching } from './node/fetch';
-const CLIENT_ID = '01ab8ac9400c4e429b23';
-const GITHUB_TOKEN_URL = 'https://vscode.dev/codeExchangeProxyEndpoints/github/login/oauth/access_token';
const NETWORK_ERROR = 'network error';
@@ -20,8 +21,8 @@ index 830e698..cd6f27e 100644
-const REDIRECT_URL_STABLE = 'https://vscode.dev/redirect';
-const REDIRECT_URL_INSIDERS = 'https://insiders.vscode.dev/redirect';
-
class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.UriHandler {
@@ -42,9 +31,2 @@ export interface IGitHubServer extends vscode.Disposable {
export interface IGitHubServer {
@@ -30,9 +20,2 @@ export interface IGitHubServer {
-interface IGitHubDeviceCodeResponse {
- device_code: string;
@@ -31,30 +32,28 @@ index 830e698..cd6f27e 100644
-}
-
async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise<string[]> {
@@ -55,3 +37,3 @@ async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Pro
Authorization: `token ${token}`,
- 'User-Agent': 'Visual-Studio-Code'
+ 'User-Agent': 'VSCodium'
}
@@ -75,7 +57,4 @@ export class GitHubServer implements IGitHubServer {
@@ -63,8 +46,4 @@ export class GitHubServer implements IGitHubServer {
- private readonly _pendingNonces = new Map<string, string[]>();
- private readonly _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
private readonly _type: AuthProviderType;
- private _pendingNonces = new Map<string, string[]>();
- private _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
private _disposable: vscode.Disposable | undefined;
private static _uriHandler: UriEventHandler | undefined;
- private _redirectEndpoint: string | undefined;
@@ -83,2 +62,3 @@ export class GitHubServer implements IGitHubServer {
public readonly type: AuthProviderType,
-
constructor(
@@ -72,3 +51,5 @@ export class GitHubServer implements IGitHubServer {
private readonly _telemetryReporter: ExperimentationTelemetry,
+ // @ts-ignore
private readonly _uriHandler: UriEventHandler,
+ // @ts-ignore
private readonly _supportDeviceCodeFlow: boolean,
@@ -102,41 +82,2 @@ export class GitHubServer implements IGitHubServer {
@@ -87,41 +68,2 @@ export class GitHubServer implements IGitHubServer {
- private async getRedirectEndpoint(): Promise<string> {
- if (this._redirectEndpoint) {
- return this._redirectEndpoint;
- }
- if (this.type === AuthProviderType.github) {
- if (this._type === AuthProviderType.github) {
- const proxyEndpoints = await vscode.commands.executeCommand<{ [providerId: string]: string } | undefined>('workbench.getCodeExchangeProxyEndpoints');
- // If we are running in insiders vscode.dev, then ensure we use the redirect route on that.
- this._redirectEndpoint = REDIRECT_URL_STABLE;
@@ -64,7 +63,7 @@ index 830e698..cd6f27e 100644
- return this._redirectEndpoint;
- } else {
- // GHES
- const result = await fetch(this.getServerUri('/meta').toString(true));
- const result = await fetching(this.getServerUri('/meta').toString(true));
- if (result.ok) {
- try {
- const json: { installed_version: string } = await result.json();
@@ -89,8 +88,8 @@ index 830e698..cd6f27e 100644
- return this._redirectEndpoint;
- }
-
dispose() {
@@ -156,58 +97,8 @@ export class GitHubServer implements IGitHubServer {
// TODO@joaomoreno TODO@TylerLeonhardt
@@ -137,58 +79,8 @@ export class GitHubServer implements IGitHubServer {
let userCancelled: boolean | undefined;
- const yes = vscode.l10n.t('Yes');
- const no = vscode.l10n.t('No');
@@ -108,7 +107,7 @@ index 830e698..cd6f27e 100644
- }
- };
-
- const nonce = uuid();
- const nonce: string = crypto.getRandomValues(new Uint32Array(2)).reduce((prev, curr) => prev += curr.toString(16), '');
- const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate?nonce=${encodeURIComponent(nonce)}`));
- const supported = isSupportedEnvironment(callbackUri);
@@ -154,7 +153,7 @@ index 830e698..cd6f27e 100644
+ this._logger.error(e);
+ userCancelled = e.message ?? e === 'User Cancelled';
}
@@ -217,136 +108,2 @@ export class GitHubServer implements IGitHubServer {
@@ -198,136 +90,2 @@ export class GitHubServer implements IGitHubServer {
- private async doLoginWithoutLocalServer(scopes: string, nonce: string, callbackUri: vscode.Uri): Promise<string> {
- this._logger.info(`Trying without local server... (${scopes})`);
@@ -187,7 +186,7 @@ index 830e698..cd6f27e 100644
- // before completing it.
- let codeExchangePromise = this._codeExchangePromises.get(scopes);
- if (!codeExchangePromise) {
- codeExchangePromise = promiseFromEvent(GitHubServer._uriHandler!.event, this.handleUri(scopes));
- codeExchangePromise = promiseFromEvent(this._uriHandler!.event, this.handleUri(scopes));
- this._codeExchangePromises.set(scopes, codeExchangePromise);
- }
-
@@ -258,7 +257,7 @@ index 830e698..cd6f27e 100644
- path: '/login/device/code',
- query: `client_id=${CLIENT_ID}&scope=${scopes}`
- });
- const result = await fetch(uri.toString(true), {
- const result = await fetching(uri.toString(true), {
- method: 'POST',
- headers: {
- Accept: 'application/json'
@@ -291,7 +290,7 @@ index 830e698..cd6f27e 100644
- }
-
private async doLoginWithPat(scopes: string): Promise<string> {
@@ -374,124 +131,2 @@ export class GitHubServer implements IGitHubServer {
@@ -355,124 +113,2 @@ export class GitHubServer implements IGitHubServer {
- private async waitForDeviceCodeAccessToken(
- json: IGitHubDeviceCodeResponse,
@@ -322,7 +321,7 @@ index 830e698..cd6f27e 100644
- }
- let accessTokenResult;
- try {
- accessTokenResult = await fetch(refreshTokenUri.toString(true), {
- accessTokenResult = await fetching(refreshTokenUri.toString(true), {
- method: 'POST',
- headers: {
- Accept: 'application/json'
@@ -388,11 +387,11 @@ index 830e698..cd6f27e 100644
- const endpointUrl = proxyEndpoints?.github ? `${proxyEndpoints.github}login/oauth/access_token` : GITHUB_TOKEN_URL;
-
- const body = new URLSearchParams([['code', code]]);
- if (this.type === AuthProviderType.githubEnterprise) {
- if (this._type === AuthProviderType.githubEnterprise) {
- body.append('github_enterprise', this.baseUri.toString(true));
- body.append('redirect_uri', await this.getRedirectEndpoint());
- }
- const result = await fetch(endpointUrl, {
- const result = await fetching(endpointUrl, {
- method: 'POST',
- headers: {
- Accept: 'application/json',
@@ -417,19 +416,19 @@ index 830e698..cd6f27e 100644
-
private getServerUri(path: string = '') {
diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
index ce2a3e8..2a5cf60 100644
index 2fff6cf..46967ce 100644
--- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
+++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
@@ -306,3 +306,3 @@ export class AccountsActivityActionViewItem extends MenuActivityActionViewItem {
@@ -307,3 +307,3 @@ export class AccountsActivityActionViewItem extends MenuActivityActionViewItem {
- if (providers.length && !menus.length) {
+ if (!menus.length) {
const noAccountsAvailableAction = disposables.add(new Action('noAccountsAvailable', localize('noAccounts', "You are not signed in to any accounts"), undefined, false));
diff --git a/src/vs/workbench/services/authentication/browser/authenticationService.ts b/src/vs/workbench/services/authentication/browser/authenticationService.ts
index d5e2b75..a996eb7 100644
index 1d9ac76..57b915c 100644
--- a/src/vs/workbench/services/authentication/browser/authenticationService.ts
+++ b/src/vs/workbench/services/authentication/browser/authenticationService.ts
@@ -279,12 +279,2 @@ export class AuthenticationService extends Disposable implements IAuthentication
@@ -267,12 +267,2 @@ export class AuthenticationService extends Disposable implements IAuthentication
}
-
- if (!this._authenticationProviders.size) {

9
patches/win7.patch Normal file
View File

@@ -0,0 +1,9 @@
diff --git a/build/win32/code.iss b/build/win32/code.iss
index d365ab1..1a02701 100644
--- a/build/win32/code.iss
+++ b/build/win32/code.iss
@@ -28,3 +28,3 @@ ChangesEnvironment=true
ChangesAssociations=true
-MinVersion=6.2
+MinVersion=6.1.7600
SourceDir={#SourceDir}

View File

@@ -51,7 +51,6 @@
"testObserver"
],
"VisualStudioExptTeam.vscodeintellicode-completions": [
"inlineCompletionsNew",
"inlineCompletionsAdditions"
],
"ms-vsliveshare.vsliveshare": [
@@ -70,7 +69,6 @@
"portsAttributes",
"findTextInFiles",
"workspaceTrust",
"resolvers",
"tunnels"
],
"ms-toolsai.vscode-ai-remote": [
@@ -78,7 +76,8 @@
],
"ms-python.python": [
"quickPickSortByLabel",
"testObserver"
"testObserver",
"telemetryLogger"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookMessaging"
@@ -97,6 +96,7 @@
"ms-vscode.azure-repos": [
"extensionRuntime",
"fileSearchProvider",
"telemetryLogger",
"textSearchProvider"
],
"ms-vscode.remote-repositories": [
@@ -112,8 +112,10 @@
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"scmActionButton",
"scmSelectedProvider",
"scmValidation",
"telemetryLogger",
"textSearchProvider",
"timeline"
],
@@ -130,8 +132,7 @@
"telemetry"
],
"ms-vscode.remote-server": [
"resolvers",
"tunnels"
"resolvers"
],
"ms-vscode.remote-explorer": [
"contribViewsRemote",
@@ -149,25 +150,25 @@
"portsAttributes",
"findTextInFiles",
"workspaceTrust",
"resolvers",
"tunnels"
],
"ms-vscode.lsif-browser": [
"documentFiltersExclusive"
],
"GitHub.vscode-pull-request-github": [
"contribCommentThreadAdditionalMenu",
"tokenInformation",
"commentsResolvedState",
"contribShareMenu",
"contribCommentPeekContext",
"treeItemCheckbox"
"treeItemCheckbox",
"codiconDecoration",
"diffCommand"
],
"GitHub.copilot": [
"inlineCompletionsNew",
"inlineCompletionsAdditions"
],
"GitHub.copilot-nightly": [
"inlineCompletionsNew",
"inlineCompletionsAdditions"
],
"GitHub.remotehub": [
@@ -183,7 +184,8 @@
"scmSelectedProvider",
"scmValidation",
"textSearchProvider",
"timeline"
"timeline",
"telemetryLogger"
],
"ms-python.gather": [
"notebookCellExecutionState"
@@ -211,7 +213,6 @@
"notebookCellExecutionState"
],
"ms-vscode.azure-sphere-tools-ui": [
"resolvers",
"tunnels"
],
"ms-azuretools.vscode-azureappservice": [
@@ -222,6 +223,15 @@
],
"ms-vscode.cpptools": [
"terminalDataWriteEvent"
],
"redhat.java": [
"documentPaste"
],
"jeanp413.open-remote-ssh": [
"resolvers",
"tunnels",
"terminalDataWriteEvent",
"contribViewsRemote"
]
},
"extensionKind": {

View File

@@ -23,7 +23,7 @@ if [[ $( gh release view --repo "${ASSETS_REPOSITORY}" "${RELEASE_VERSION}" 2>&1
CREATE_OPTIONS="--generate-notes"
fi
gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --notes "${NOTES}" ${CREATE_OPTIONS}
gh release create "${RELEASE_VERSION}" --repo "${ASSETS_REPOSITORY}" --title "${RELEASE_VERSION}" --notes "${NOTES}" ${CREATE_OPTIONS}
fi
cd assets

View File

@@ -14,12 +14,12 @@ REPLACEMENT="s|//[^/]+\.data\.microsoft\.com|//0\.0\.0\.0|g"
if is_gnu_sed; then
replace_with_debug () {
echo "found: ${2} (`date`)"
echo "found: ${2}"
sed -i -E "${1}" "${2}"
}
else
replace_with_debug () {
echo "found: ${2} (`date`)"
echo "found: ${2}"
sed -i '' -E "${1}" "${2}"
}
fi