mirror of
https://github.com/VSCodium/vscodium.git
synced 2024-12-25 01:41:53 +03:00
Merge branch 'master' into fix-binary
This commit is contained in:
commit
b07aee0b20
47
DOCS.md
47
DOCS.md
@ -3,7 +3,11 @@
|
|||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
- [Getting all the Telemetry Out](#disable-telemetry)
|
- [Getting all the Telemetry Out](#disable-telemetry)
|
||||||
|
- [Replacements to Microsoft Online Services](#replacement-online-services)
|
||||||
- [Extensions + Marketplace](#extensions-marketplace)
|
- [Extensions + Marketplace](#extensions-marketplace)
|
||||||
|
- [How to use the VS Code Marketplace](#howto-vscode-marketplace)
|
||||||
|
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||||
|
- [Proprietary Extensions](#proprietary-extensions)
|
||||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||||
- [How do I run VSCodium in portable mode?](#portable)
|
- [How do I run VSCodium in portable mode?](#portable)
|
||||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||||
@ -28,7 +32,7 @@ These can all be disabled.
|
|||||||
|
|
||||||
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
||||||
|
|
||||||
### Replacements to Microsoft Online Services
|
### <a id="replacement-online-services"></a>Replacements to Microsoft Online Services
|
||||||
|
|
||||||
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L36) in `product.json` to that of VSCodium's own small [update server](https://github.com/VSCodium/update-api), so enabling that setting won't actually result in any calls to Microsoft servers.
|
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L36) in `product.json` to that of VSCodium's own small [update server](https://github.com/VSCodium/update-api), so enabling that setting won't actually result in any calls to Microsoft servers.
|
||||||
|
|
||||||
@ -41,23 +45,46 @@ The `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) a
|
|||||||
* 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).
|
* 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.
|
* 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).
|
||||||
* Modify the `extensionsGallery` section of the `product.json` file in your VSCodium installation to use the VS Code Marketplace as shown below. However, note that [it is not clear whether this is legal](https://github.com/microsoft/vscode/issues/31168).
|
|
||||||
```json
|
|
||||||
"extensionsGallery": {
|
|
||||||
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
|
|
||||||
"itemUrl": "https://marketplace.visualstudio.com/items"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||||
|
|
||||||
### Proprietary Debugging Tools
|
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
|
||||||
|
|
||||||
|
You can switch and use the VS Code marketplace by using the following solutions. However, note that [it is not clear whether this is legal](https://github.com/microsoft/vscode/issues/31168).
|
||||||
|
|
||||||
|
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_CONTROL_URL=''`
|
||||||
|
- `VSCODE_GALLERY_RECOMMENDATIONS_URL=''`
|
||||||
|
|
||||||
|
Or by creating a custom `product.json` at the following location:
|
||||||
|
- Windows: `%USER%\AppData\Roaming\VSCodium`
|
||||||
|
- macOS: `~/Library/Application Support/VSCodium`
|
||||||
|
- Linux: `~/.config/VSCodium`
|
||||||
|
|
||||||
|
with the content:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"extensionsGallery": {
|
||||||
|
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
|
||||||
|
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
|
||||||
|
"itemUrl": "https://marketplace.visualstudio.com/items",
|
||||||
|
"controlUrl": "",
|
||||||
|
"recommendationsUrl": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||||
|
|
||||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the offical Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the offical Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||||
|
|
||||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||||
|
|
||||||
### Proprietary Extensions
|
### <a id="proprietary-extensions"></a>Proprietary Extensions
|
||||||
|
|
||||||
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 offical 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:
|
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 offical 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:
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [[ $github.event.number ]]; then
|
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
|
||||||
echo "It's a PR"
|
echo "It's a PR"
|
||||||
|
|
||||||
export SHOULD_BUILD="yes"
|
export SHOULD_BUILD="yes"
|
||||||
|
74
patches/custom-gallery.patch
Normal file
74
patches/custom-gallery.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
|
||||||
|
index 2730ee7..4d46c23 100644
|
||||||
|
--- a/src/vs/platform/product/common/product.ts
|
||||||
|
+++ b/src/vs/platform/product/common/product.ts
|
||||||
|
@@ -8,6 +8,7 @@ import { isWeb } from 'vs/base/common/platform';
|
||||||
|
import { env } from 'vs/base/common/process';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
import { dirname, joinPath } from 'vs/base/common/resources';
|
||||||
|
+import { getDefaultUserDataPath } from 'vs/base/node/userDataPath';
|
||||||
|
|
||||||
|
let product: IProductConfiguration;
|
||||||
|
|
||||||
|
@@ -47,6 +48,29 @@ else {
|
||||||
|
product = require.__$__nodeRequire(joinPath(rootPath, 'product.json').fsPath);
|
||||||
|
const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string; };
|
||||||
|
|
||||||
|
+ // Merge user-customized product.json
|
||||||
|
+ try {
|
||||||
|
+ const merge = (...objects: any[]) =>
|
||||||
|
+ objects.reduce((result, current) => {
|
||||||
|
+ Object.keys(current).forEach((key) => {
|
||||||
|
+ if (Array.isArray(result[key]) && Array.isArray(current[key])) {
|
||||||
|
+ result[key] = current[key];
|
||||||
|
+ } else if (typeof result[key] === 'object' && typeof current[key] === 'object') {
|
||||||
|
+ result[key] = merge(result[key], current[key]);
|
||||||
|
+ } else {
|
||||||
|
+ result[key] = current[key];
|
||||||
|
+ }
|
||||||
|
+ });
|
||||||
|
+
|
||||||
|
+ return result;
|
||||||
|
+ }, {}) as any;
|
||||||
|
+
|
||||||
|
+ const userProduct = require.__$__nodeRequire(joinPath(FileAccess.asFileUri(getDefaultUserDataPath(), require), 'product.json').fsPath);
|
||||||
|
+
|
||||||
|
+ product = merge(product, userProduct)
|
||||||
|
+ } catch (ex) {
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Running out of sources
|
||||||
|
if (env['VSCODE_DEV']) {
|
||||||
|
Object.assign(product, {
|
||||||
|
@@ -56,6 +80,19 @@ else {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Set user-defined extension gallery
|
||||||
|
+ const { serviceUrl, cacheUrl, itemUrl, controlUrl, recommendationsUrl } = product.extensionsGallery || {}
|
||||||
|
+
|
||||||
|
+ Object.assign(product, {
|
||||||
|
+ extensionsGallery: {
|
||||||
|
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
|
||||||
|
+ cacheUrl: env['VSCODE_GALLERY_CACHE_URL'] || cacheUrl,
|
||||||
|
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
|
||||||
|
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
|
||||||
|
+ recommendationsUrl: env['VSCODE_GALLERY_RECOMMENDATIONS_URL'] || recommendationsUrl
|
||||||
|
+ }
|
||||||
|
+ })
|
||||||
|
+
|
||||||
|
Object.assign(product, {
|
||||||
|
version: pkg.version
|
||||||
|
});
|
||||||
|
diff --git a/src/vs/platform/product/common/productService.ts b/src/vs/platform/product/common/productService.ts
|
||||||
|
index 07263ca..0328f58 100644
|
||||||
|
--- a/src/vs/platform/product/common/productService.ts
|
||||||
|
+++ b/src/vs/platform/product/common/productService.ts
|
||||||
|
@@ -67,6 +67,7 @@ export interface IProductConfiguration {
|
||||||
|
|
||||||
|
readonly extensionsGallery?: {
|
||||||
|
readonly serviceUrl: string;
|
||||||
|
+ readonly cacheUrl?: string;
|
||||||
|
readonly itemUrl: string;
|
||||||
|
readonly controlUrl: string;
|
||||||
|
readonly recommendationsUrl: string;
|
@ -11,6 +11,7 @@ cd vscode || exit
|
|||||||
patch -u src/vs/platform/update/electron-main/updateService.win32.ts -i ../patches/update-cache-path.patch
|
patch -u src/vs/platform/update/electron-main/updateService.win32.ts -i ../patches/update-cache-path.patch
|
||||||
patch -u resources/linux/rpm/code.spec.template -i ../patches/fix-rpm-spec.patch
|
patch -u resources/linux/rpm/code.spec.template -i ../patches/fix-rpm-spec.patch
|
||||||
git apply --ignore-whitespace ../patches/binary-name.patch
|
git apply --ignore-whitespace ../patches/binary-name.patch
|
||||||
|
git apply --ignore-whitespace ../patches/custom-gallery.patch
|
||||||
|
|
||||||
if [[ "$OS_NAME" == "osx" ]]; then
|
if [[ "$OS_NAME" == "osx" ]]; then
|
||||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
|
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
|
||||||
|
Loading…
Reference in New Issue
Block a user