From 2e12c9716078a3dc878d47672850e3e183f63b6a Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 1 Jul 2024 15:20:29 +0200 Subject: [PATCH 01/11] rename editor.collapsedText to foldPlaceholderForeground (#219340) rename vscode-editor-collapsedText --- build/lib/stylelint/vscode-known-variables.json | 2 +- src/vs/editor/contrib/folding/browser/folding.css | 2 +- src/vs/editor/contrib/folding/browser/foldingDecorations.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/lib/stylelint/vscode-known-variables.json b/build/lib/stylelint/vscode-known-variables.json index 272347c6c9915..148aa2786ddbb 100644 --- a/build/lib/stylelint/vscode-known-variables.json +++ b/build/lib/stylelint/vscode-known-variables.json @@ -128,7 +128,6 @@ "--vscode-dropdown-foreground", "--vscode-dropdown-listBackground", "--vscode-editor-background", - "--vscode-editor-collapsedText", "--vscode-editor-findMatchBackground", "--vscode-editor-findMatchBorder", "--vscode-editor-findMatchForeground", @@ -139,6 +138,7 @@ "--vscode-editor-findRangeHighlightBorder", "--vscode-editor-focusedStackFrameHighlightBackground", "--vscode-editor-foldBackground", + "--vscode-editor-foldPlaceholderForeground", "--vscode-editor-foreground", "--vscode-editor-hoverHighlightBackground", "--vscode-editor-inactiveSelectionBackground", diff --git a/src/vs/editor/contrib/folding/browser/folding.css b/src/vs/editor/contrib/folding/browser/folding.css index 9a7c91ced43ce..5f7ab05db78bb 100644 --- a/src/vs/editor/contrib/folding/browser/folding.css +++ b/src/vs/editor/contrib/folding/browser/folding.css @@ -31,7 +31,7 @@ } .monaco-editor .inline-folded:after { - color: var(--vscode-editor-collapsedText); + color: var(--vscode-editor-foldPlaceholderForeground); margin: 0.1em 0.2em 0 0.2em; content: "\22EF"; /* ellipses unicode character */ display: inline; diff --git a/src/vs/editor/contrib/folding/browser/foldingDecorations.ts b/src/vs/editor/contrib/folding/browser/foldingDecorations.ts index d30d019ca98a4..2350f9aad343f 100644 --- a/src/vs/editor/contrib/folding/browser/foldingDecorations.ts +++ b/src/vs/editor/contrib/folding/browser/foldingDecorations.ts @@ -15,7 +15,7 @@ import { themeColorFromId } from 'vs/platform/theme/common/themeService'; import { ThemeIcon } from 'vs/base/common/themables'; const foldBackground = registerColor('editor.foldBackground', { light: transparent(editorSelectionBackground, 0.3), dark: transparent(editorSelectionBackground, 0.3), hcDark: null, hcLight: null }, localize('foldBackgroundBackground', "Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."), true); -registerColor('editor.collapsedText', { light: '#808080', dark: '#808080', hcDark: null, hcLight: null }, localize('collapsedTextColor', "Color of the collapsed text after the first line of a folded range.")); +registerColor('editor.foldPlaceholderForeground', { light: '#808080', dark: '#808080', hcDark: null, hcLight: null }, localize('collapsedTextColor', "Color of the collapsed text after the first line of a folded range.")); registerColor('editorGutter.foldingControlForeground', iconForeground, localize('editorGutter.foldingControlForeground', 'Color of the folding control in the editor gutter.')); export const foldingExpandedIcon = registerIcon('folding-expanded', Codicon.chevronDown, localize('foldingExpandedIcon', 'Icon for expanded ranges in the editor glyph margin.')); From ea1445cc7016315d0f5728f8e8b12a45dc0a7286 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 1 Jul 2024 15:21:17 +0200 Subject: [PATCH 02/11] fix #219336 (#219337) * fix #219336 * fix owner --- .../contrib/telemetry/browser/telemetry.contribution.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts b/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts index 755566d543519..65b2301495f76 100644 --- a/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts +++ b/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts @@ -431,11 +431,11 @@ class ConfigurationTelemetryContribution extends Disposable implements IWorkbenc ? 'default' : 'custom'; this.telemetryService.publicLog2('window.systemColorTheme', { settingValue, source }); + }>('window.newWindowProfile', { settingValue, source }); return; } @@ -445,7 +445,7 @@ class ConfigurationTelemetryContribution extends Disposable implements IWorkbenc comment: 'This is used to know if extensions are getting auto restarted or not'; settingValue: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'value of the setting' }; source: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'source of the setting' }; - }>('window.systemColorTheme', { settingValue: this.getValueToReport(key, target), source }); + }>('extensions.autoRestart', { settingValue: this.getValueToReport(key, target), source }); return; } } From 699ded1b82aef27a111231a7ceee7f7f52d72e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Wed, 3 Jul 2024 11:11:18 +0200 Subject: [PATCH 03/11] use unofficial 1espt (#219836) use unofficial 1espt (#219824) --- build/azure-pipelines/product-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/azure-pipelines/product-build.yml b/build/azure-pipelines/product-build.yml index 5357697484eb9..ad95311299118 100644 --- a/build/azure-pipelines/product-build.yml +++ b/build/azure-pipelines/product-build.yml @@ -167,7 +167,7 @@ resources: ref: refs/tags/release extends: - template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines + template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines parameters: sdl: tsa: @@ -183,7 +183,7 @@ extends: allTools: true codeql: compiled: - enabled: true + enabled: false runSourceLanguagesInSourceAnalysis: true credscan: suppressionsFile: $(Build.SourcesDirectory)/build/azure-pipelines/config/CredScanSuppressions.json From 273d8a3a581b21483a7c2f37a686ae25d631faad Mon Sep 17 00:00:00 2001 From: Benjamin Christopher Simmonds <44439583+benibenj@users.noreply.github.com> Date: Wed, 3 Jul 2024 12:55:40 +0200 Subject: [PATCH 04/11] Open-dragon (#219848) update known variables --- build/lib/stylelint/vscode-known-variables.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/lib/stylelint/vscode-known-variables.json b/build/lib/stylelint/vscode-known-variables.json index 148aa2786ddbb..6dc9c7e1478fd 100644 --- a/build/lib/stylelint/vscode-known-variables.json +++ b/build/lib/stylelint/vscode-known-variables.json @@ -339,7 +339,7 @@ "--vscode-icon-foreground", "--vscode-inlineChat-background", "--vscode-inlineChat-border", - "--vscode-inlineChat-regionHighlight", + "--vscode-inlineChat-foreground", "--vscode-inlineChat-shadow", "--vscode-inlineChatDiff-inserted", "--vscode-inlineChatDiff-removed", From 5396c3c6a7b96b1cb4267d8c514e44ed8ea5142e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 4 Jul 2024 17:05:53 +0200 Subject: [PATCH 05/11] select a language option is not working (fix #219876) (#219880) --- .../browser/emptyTextEditorHint/emptyTextEditorHint.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.ts b/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.ts index 327554fd78153..952a32eac79e2 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.ts @@ -348,7 +348,7 @@ class EmptyTextEditorHintContentWidget implements IContentWidget { id: ChangeLanguageAction.ID, from: 'hint' }); - await this.commandService.executeCommand(ChangeLanguageAction.ID, { from: 'hint' }); + await this.commandService.executeCommand(ChangeLanguageAction.ID); this.editor.focus(); }; From 8fa1eb80ab5f990f51160008e12e33ab133d340e Mon Sep 17 00:00:00 2001 From: Robo Date: Mon, 8 Jul 2024 21:25:51 +0900 Subject: [PATCH 06/11] fix: use xcode >= 15.1 to address broken builds on macOS <= 12 (#219991) (#220040) --- build/.cachesalt | 2 +- build/azure-pipelines/darwin/product-build-darwin.yml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/build/.cachesalt b/build/.cachesalt index 4a19f329eb108..38f740c2577c3 100644 --- a/build/.cachesalt +++ b/build/.cachesalt @@ -1 +1 @@ -2024-05-25T03:29:59.419Z +2024-07-05T08:35:22.799Z diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index 8b4bda1c6a2f2..11f69d735ac23 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -78,6 +78,14 @@ steps: - script: | set -e + # Refs https://github.com/microsoft/vscode/issues/219893#issuecomment-2209313109 + sudo xcode-select --switch /Applications/Xcode_15.2.app + condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true')) + displayName: Switch to Xcode >= 15.1 + + - script: | + set -e + c++ --version python3 -m pip install setuptools for i in {1..5}; do # try 5 times From 17fe77233652c31ccd3e04c5225e6a92334a09ce Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 8 Jul 2024 09:44:55 -0700 Subject: [PATCH 07/11] Reverts the recent drop changes as these introduced regressions (#219896) Safest fix for the recovery build --- .../contrib/webview/browser/pre/index.html | 20 +++----------- .../contrib/webview/browser/webviewElement.ts | 17 +----------- .../webview/browser/webviewMessages.d.ts | 5 ---- .../browser/webviewWindowDragMonitor.ts | 26 ++----------------- 4 files changed, 6 insertions(+), 62 deletions(-) diff --git a/src/vs/workbench/contrib/webview/browser/pre/index.html b/src/vs/workbench/contrib/webview/browser/pre/index.html index f46e124042850..b098f3828db4e 100644 --- a/src/vs/workbench/contrib/webview/browser/pre/index.html +++ b/src/vs/workbench/contrib/webview/browser/pre/index.html @@ -6,7 +6,7 @@ + content="default-src 'none'; script-src 'sha256-dvxt5dlghGbz8hrqqochfoKEaHIMZ+yJVRvjJnGopzs=' 'self'; frame-src 'self'; style-src 'unsafe-inline';"> @@ -797,17 +797,6 @@ } } - - function handleInnerDragEvent(/** @type {DragEvent} */ e) { - if (!e.dataTransfer) { - return; - } - - hostMessaging.postMessage('drag', { - shiftKey: e.shiftKey - }); - } - /** * @param {() => void} callback */ @@ -898,9 +887,7 @@ window.addEventListener('keydown', handleInnerKeydown); window.addEventListener('keyup', handleInnerKeyup); window.addEventListener('dragenter', handleInnerDragStartEvent); - window.addEventListener('dragover', handleInnerDragEvent); - window.addEventListener('drag', handleInnerDragEvent); - + window.addEventListener('dragover', handleInnerDragStartEvent); onDomReady(() => { if (!document.body) { @@ -1182,8 +1169,7 @@ }); contentWindow.addEventListener('dragenter', handleInnerDragStartEvent); - contentWindow.addEventListener('dragover', handleInnerDragEvent); - contentWindow.addEventListener('drag', handleInnerDragEvent); + contentWindow.addEventListener('dragover', handleInnerDragStartEvent); unloadMonitor.onIframeLoaded(newFrame); } diff --git a/src/vs/workbench/contrib/webview/browser/webviewElement.ts b/src/vs/workbench/contrib/webview/browser/webviewElement.ts index 5d6e403159f46..3d5d21f080f7f 100644 --- a/src/vs/workbench/contrib/webview/browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/browser/webviewElement.ts @@ -34,7 +34,7 @@ import { loadLocalResource, WebviewResourceResponse } from 'vs/workbench/contrib import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/browser/themeing'; import { areWebviewContentOptionsEqual, IWebview, WebviewContentOptions, WebviewExtensionDescription, WebviewInitInfo, WebviewMessageReceivedEvent, WebviewOptions } from 'vs/workbench/contrib/webview/browser/webview'; import { WebviewFindDelegate, WebviewFindWidget } from 'vs/workbench/contrib/webview/browser/webviewFindWidget'; -import { FromWebviewMessage, KeyEvent, ToWebviewMessage, WebViewDragEvent } from 'vs/workbench/contrib/webview/browser/webviewMessages'; +import { FromWebviewMessage, KeyEvent, ToWebviewMessage } from 'vs/workbench/contrib/webview/browser/webviewMessages'; import { decodeAuthority, webviewGenericCspSource, webviewRootResourceAuthority } from 'vs/workbench/contrib/webview/common/webview'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { CodeWindow } from 'vs/base/browser/window'; @@ -310,10 +310,6 @@ export class WebviewElement extends Disposable implements IWebview, WebviewFindD this._startBlockingIframeDragEvents(); })); - this._register(this.on('drag', (event) => { - this.handleDragEvent('drag', event); - })); - if (initInfo.options.enableFindWidget) { this._webviewFindWidget = this._register(instantiationService.createInstance(WebviewFindWidget, this)); } @@ -701,17 +697,6 @@ export class WebviewElement extends Disposable implements IWebview, WebviewFindD this.window?.dispatchEvent(emulatedKeyboardEvent); } - private handleDragEvent(type: 'drag', event: WebViewDragEvent) { - // Create a fake DragEvent from the data provided - const emulatedDragEvent = new DragEvent(type, event); - // Force override the target - Object.defineProperty(emulatedDragEvent, 'target', { - get: () => this.element, - }); - // And re-dispatch - this.window?.dispatchEvent(emulatedDragEvent); - } - windowDidDragStart(): void { // Webview break drag and dropping around the main window (no events are generated when you are over them) // Work around this by disabling pointer events during the drag. diff --git a/src/vs/workbench/contrib/webview/browser/webviewMessages.d.ts b/src/vs/workbench/contrib/webview/browser/webviewMessages.d.ts index dde553ec05724..eae9c80fa6872 100644 --- a/src/vs/workbench/contrib/webview/browser/webviewMessages.d.ts +++ b/src/vs/workbench/contrib/webview/browser/webviewMessages.d.ts @@ -17,10 +17,6 @@ type KeyEvent = { repeat: boolean; } -type WebViewDragEvent = { - shiftKey: boolean; -} - export type FromWebviewMessage = { 'onmessage': { message: any; transfer?: ArrayBuffer[] }; 'did-click-link': { uri: string }; @@ -40,7 +36,6 @@ export type FromWebviewMessage = { 'did-keyup': KeyEvent; 'did-context-menu': { clientX: number; clientY: number; context: { [key: string]: unknown } }; 'drag-start': void; - 'drag': WebViewDragEvent }; interface UpdateContentEvent { diff --git a/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.ts b/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.ts index d009ae186da59..e4dc5eaf0e904 100644 --- a/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.ts +++ b/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.ts @@ -18,41 +18,19 @@ export class WebviewWindowDragMonitor extends Disposable { constructor(targetWindow: CodeWindow, getWebview: () => IWebview | undefined) { super(); - const onDragStart = () => { + this._register(DOM.addDisposableListener(targetWindow, DOM.EventType.DRAG_START, () => { getWebview()?.windowDidDragStart(); - }; + })); const onDragEnd = () => { getWebview()?.windowDidDragEnd(); }; - this._register(DOM.addDisposableListener(targetWindow, DOM.EventType.DRAG_START, () => { - onDragStart(); - })); - this._register(DOM.addDisposableListener(targetWindow, DOM.EventType.DRAG_END, onDragEnd)); - this._register(DOM.addDisposableListener(targetWindow, DOM.EventType.MOUSE_MOVE, currentEvent => { if (currentEvent.buttons === 0) { onDragEnd(); } })); - - this._register(DOM.addDisposableListener(targetWindow, DOM.EventType.DRAG, (event) => { - if (event.shiftKey) { - onDragEnd(); - } else { - onDragStart(); - } - })); - - this._register(DOM.addDisposableListener(targetWindow, DOM.EventType.DRAG_OVER, (event) => { - if (event.shiftKey) { - onDragEnd(); - } else { - onDragStart(); - } - })); - } } From 8dc116235926cec63663b828d083c236fc66c2d3 Mon Sep 17 00:00:00 2001 From: Michael Lively Date: Mon, 8 Jul 2024 13:15:46 -0700 Subject: [PATCH 08/11] Bump version for June Recovery 1 (#221220) bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae706deebbcf1..2103fe1fe1afa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "code-oss-dev", - "version": "1.91.0", + "version": "1.91.1", "distro": "a08799837ca498c02f445ca7a896f446419af238", "author": { "name": "Microsoft Corporation" From bc40ad630753be707c69087dc245d2eb0abc79bb Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 9 Jul 2024 14:37:38 +0200 Subject: [PATCH 09/11] fix #219941 (#221267) fix #219941 (#221260) --- .../extensionManagement/common/extensionManagementCLI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/platform/extensionManagement/common/extensionManagementCLI.ts b/src/vs/platform/extensionManagement/common/extensionManagementCLI.ts index 17c76f6fe7040..b5c7432cf12da 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagementCLI.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagementCLI.ts @@ -224,7 +224,7 @@ export class ExtensionManagementCLI { } extensionsToInstall.push({ extension: gallery, - options: { ...installOptions, installGivenVersion: !!version, isApplicationScoped: installedExtension?.isApplicationScoped }, + options: { ...installOptions, installGivenVersion: !!version, isApplicationScoped: installOptions.isApplicationScoped || installedExtension?.isApplicationScoped }, }); })); From f1e16e1e6214d7c44d078b1f0607b2388f29d729 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:51:23 +0200 Subject: [PATCH 10/11] Git - add exception handling to handle edge cases (#221268) --- extensions/git/src/historyProvider.ts | 47 +++++++++++++++------------ 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/extensions/git/src/historyProvider.ts b/extensions/git/src/historyProvider.ts index 22cbe9c493d1f..977954ec667cb 100644 --- a/extensions/git/src/historyProvider.ts +++ b/extensions/git/src/historyProvider.ts @@ -145,29 +145,34 @@ export class GitHistoryProvider implements SourceControlHistoryProvider, FileDec return []; } - // Get the commits - const commits = await this.repository.log({ range: `${refsMergeBase}^..`, refNames }); - - await ensureEmojis(); - const historyItems: SourceControlHistoryItem[] = []; - historyItems.push(...commits.map(commit => { - const newLineIndex = commit.message.indexOf('\n'); - const subject = newLineIndex !== -1 ? commit.message.substring(0, newLineIndex) : commit.message; - - const labels = this.resolveHistoryItemLabels(commit, refNames); - return { - id: commit.hash, - parentIds: commit.parents, - message: emojify(subject), - author: commit.authorName, - icon: new ThemeIcon('git-commit'), - timestamp: commit.authorDate?.getTime(), - statistics: commit.shortStat ?? { files: 0, insertions: 0, deletions: 0 }, - labels: labels.length !== 0 ? labels : undefined - }; - })); + try { + // Get the commits + const commits = await this.repository.log({ range: `${refsMergeBase}^..`, refNames }); + + await ensureEmojis(); + + historyItems.push(...commits.map(commit => { + const newLineIndex = commit.message.indexOf('\n'); + const subject = newLineIndex !== -1 ? commit.message.substring(0, newLineIndex) : commit.message; + + const labels = this.resolveHistoryItemLabels(commit, refNames); + + return { + id: commit.hash, + parentIds: commit.parents, + message: emojify(subject), + author: commit.authorName, + icon: new ThemeIcon('git-commit'), + timestamp: commit.authorDate?.getTime(), + statistics: commit.shortStat ?? { files: 0, insertions: 0, deletions: 0 }, + labels: labels.length !== 0 ? labels : undefined + }; + })); + } catch (err) { + this.logger.error(`[GitHistoryProvider][provideHistoryItems2] Failed to get history items '${refsMergeBase}^..': ${err}`); + } return historyItems; } From 2f153b51eb70562fdb8cd72634af062375d67b5b Mon Sep 17 00:00:00 2001 From: ashwin Date: Wed, 14 Aug 2024 23:55:34 +0530 Subject: [PATCH 11/11] basic changes for build --- README.md | 134 ++- build/hygiene.js | 8 +- build/lib/compilation.ts | 16 +- product.json | 1029 ++++++++++++++++- .../common/extensionsProposedApi.ts | 3 +- 5 files changed, 1113 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index 61df8fc6bb44e..c87fa3b976670 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,64 @@ -# Visual Studio Code - Open Source ("Code - OSS") +# OpenVSCode Web Server -[![Feature Requests](https://img.shields.io/github/issues/microsoft/vscode/feature-request.svg)](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) -[![Bugs](https://img.shields.io/github/issues/microsoft/vscode/bug.svg)](https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug) -[![Gitter](https://img.shields.io/badge/chat-on%20gitter-yellow.svg)](https://gitter.im/Microsoft/vscode) +[![GitHub](https://img.shields.io/github/license/runcode-io/openvscode-web-server)](https://github.com/runcode-io/openvscode-web-server/blob/main/LICENSE.txt) -## The Repository +## What is this? -This repository ("`Code - OSS`") is where we (Microsoft) develop the [Visual Studio Code](https://code.visualstudio.com) product together with the community. Not only do we work on code and issues here, we also publish our [roadmap](https://github.com/microsoft/vscode/wiki/Roadmap), [monthly iteration plans](https://github.com/microsoft/vscode/wiki/Iteration-Plans), and our [endgame plans](https://github.com/microsoft/vscode/wiki/Running-the-Endgame). This source code is available to everyone under the standard [MIT license](https://github.com/microsoft/vscode/blob/main/LICENSE.txt). +This project provides a version of VS Code that runs as a server on a remote machine, accessible through a modern web browser. It utilizes the same architecture used by [RunCode](https://runcode.io) to deliver scalable remote development environments. -## Visual Studio Code +## Why? -

- VS Code in action -

+VS Code was originally developed as a desktop IDE using web technologies. As remote development gained popularity, the community began adapting it for remote access via web browsers. However, these adaptations were often complex and error-prone due to the extensive changes required across VS Code's large codebase. -[Visual Studio Code](https://code.visualstudio.com) is a distribution of the `Code - OSS` repository with Microsoft-specific customizations released under a traditional [Microsoft product license](https://code.visualstudio.com/License/). +In 2019, the VS Code team began restructuring its architecture to natively support a browser-based environment. While platforms like Gitpod and GitHub adopted this architecture, the key components remained closed-source until recently. Consequently, many developers continued to use the older, more difficult methods. -[Visual Studio Code](https://code.visualstudio.com) combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. It provides comprehensive code editing, navigation, and understanding support along with lightweight debugging, a rich extensibility model, and lightweight integration with existing tools. +At RunCode, we've frequently been asked about our approach. To support the community, we're sharing the minimal set of changes required to utilize the latest version of VS Code, ensuring easier upgrades and reduced maintenance. -Visual Studio Code is updated monthly with new features and bug fixes. You can download it for Windows, macOS, and Linux on [Visual Studio Code's website](https://code.visualstudio.com/Download). To get the latest releases every day, install the [Insiders build](https://code.visualstudio.com/insiders). +## Getting started -## Contributing +### Docker -There are many ways in which you can participate in this project, for example: +- Start the server: +```bash +docker run -it --init -p 8000:8000 -v "$(pwd):/home/runcode/workspace:cached" runcode/runcode-server +``` +- Visit the URL printed in your terminal. -* [Submit bugs and feature requests](https://github.com/microsoft/vscode/issues), and help us verify as they are checked in -* Review [source code changes](https://github.com/microsoft/vscode/pulls) -* Review the [documentation](https://github.com/microsoft/vscode-docs) and make pull requests for anything from typos to additional and new content -If you are interested in fixing issues and contributing directly to the code base, -please see the document [How to Contribute](https://github.com/microsoft/vscode/wiki/How-to-Contribute), which covers the following: -* [How to build and run from source](https://github.com/microsoft/vscode/wiki/How-to-Contribute) -* [The development workflow, including debugging and running tests](https://github.com/microsoft/vscode/wiki/How-to-Contribute#debugging) -* [Coding guidelines](https://github.com/microsoft/vscode/wiki/Coding-Guidelines) -* [Submitting pull requests](https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests) -* [Finding an issue to work on](https://github.com/microsoft/vscode/wiki/How-to-Contribute#where-to-contribute) -* [Contributing to translations](https://aka.ms/vscodeloc) +#### Custom Environment +- For additional possibilities, please consult the `Dockerfile` for OpenVSCode Web Server at https://github.com/runcode-io/runcode-releases/ -## Feedback -* Ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/vscode) -* [Request a new feature](CONTRIBUTING.md) -* Upvote [popular feature requests](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) -* [File an issue](https://github.com/microsoft/vscode/issues) -* Connect with the extension author community on [GitHub Discussions](https://github.com/microsoft/vscode-discussions/discussions) or [Slack](https://aka.ms/vscode-dev-community) -* Follow [@code](https://twitter.com/code) and let us know what you think! +### Web Server -See our [wiki](https://github.com/microsoft/vscode/wiki/Feedback-Channels) for a description of each of these channels and information on some other available community-driven channels. +- [Download the latest release](https://github.com/runcode-io/openvscode-web-server/releases/latest) +- Untar and run the server + ```bash + unzip openvscode-web-server-v${OPENVSCODE_SERVER_VERSION}.zip + cd vscode-reh-web-linux-x64 + ./bin/runcode-server # you can add arguments here, use --help to list all of the possible options + ``` -## Related Projects + From the possible entrypoint arguments, the most notable ones are + - `--port` - the port number to start the server on, this is 8000 by default + - `--without-connection-token` - used by default in the docker image + - `--connection-token` & `--connection-token-file` for securing access to the IDE, you can read more about it in [Securing access to your IDE](#securing-access-to-your-ide). + - `--host` - determines the host the server is listening on. It defaults to `localhost`, so for accessing remotely it's a good idea to add `--host 0.0.0.0` to your launch arguments. -Many of the core components and extensions to VS Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug) repositories are separate from each other. For a complete list, please visit the [Related Projects](https://github.com/microsoft/vscode/wiki/Related-Projects) page on our [wiki](https://github.com/microsoft/vscode/wiki). +- Visit the URL printed in your terminal. + +### Securing access to your IDE + +You can access the Web UI without authentication (anyone can access the IDE using just the hostname and port), if you need some kind of basic authentication then you can start the server with `--connection-token YOUR_TOKEN`, the provided `YOUR_TOKEN` will be used and the authenticated URL will be displayed in your terminal once you start the server. You can also create a plaintext file with the desired token as its contents and provide it to the server with `--connection-token-file YOUR_SECRET_TOKEN_FILE`. + +If you want to use a connection token and are working with OpenVSCode Web Server via [the Docker image](https://hub.docker.com/r/runcode/runcode-server), you will have to edit the `ENTRYPOINT` in [the Dockerfile](https://github.com/runcode-io/runcode-releases/blob/main/Dockerfile) or modify it with the [`entrypoint` option](https://docs.docker.com/compose/compose-file/compose-file-v3/#entrypoint) when working with `docker-compose`. + +## The scope of this project + +This project only adds minimal bits required to run VS Code in a server scenario. We have no intention of changing VS Code in any way or to add additional features to VS Code itself. Please report feature requests, bug fixes, etc. in the upstream repository. + +> **For any feature requests, bug reports, or contributions that are not specific to running VS Code in a server context, please go to [Visual Studio Code - Open Source "OSS"](https://github.com/microsoft/vscode)** ## Bundled Extensions @@ -61,19 +68,56 @@ VS Code includes a set of built-in extensions located in the [extensions](extens This repository includes a Visual Studio Code Dev Containers / GitHub Codespaces development container. -* For [Dev Containers](https://aka.ms/vscode-remote/download/containers), use the **Dev Containers: Clone Repository in Container Volume...** command which creates a Docker volume for better disk I/O on macOS and Windows. - * If you already have VS Code and Docker installed, you can also click [here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/vscode) to get started. This will cause VS Code to automatically install the Dev Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use. - -* For Codespaces, install the [GitHub Codespaces](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) extension in VS Code, and use the **Codespaces: Create New Codespace** command. +- For [Dev Containers](https://aka.ms/vscode-remote/download/containers), use the **Dev Containers: Clone Repository in Container Volume...** command which creates a Docker volume for better disk I/O on macOS and Windows. + - If you already have VS Code and Docker installed, you can also click [here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/vscode) to get started. This will cause VS Code to automatically install the Dev Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use. +- For Codespaces, install the [GitHub Codespaces](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) extension in VS Code, and use the **Codespaces: Create New Codespace** command. Docker / the Codespace should have at least **4 Cores and 6 GB of RAM (8 GB recommended)** to run full build. See the [development container README](.devcontainer/README.md) for more information. -## Code of Conduct +## Legal +This project is not affiliated with Microsoft Corporation. + + + + + + + + + + + + + + + +docker run -it --network=host -v "$(pwd):/home/" ubuntu:22.04 + + +apt update && apt install sudo git wget build-essential + +sudo apt update && sudo apt upgrade -y +sudo apt-get install -y libkrb5-dev libx11-dev libxkbfile-dev pkg-config libsecret-1-dev + +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash + +source /root/.bashrc + +nvm install 20.14.0 + +corepack enable + +git config --global --add safe.directory /home + + + -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +docker run -itd -p 8000:8000 -v "$(pwd):/home" ubuntu:22.04 +apt update && apt upgrade -y && apt install unzip sudo -y -## License +./vscode-reh-web-linux-x64/bin/runcode-server --default-folder=/home/ --host=0.0.0.0 -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the [MIT](LICENSE.txt) license. +apt-get update && apt-get install -y software-properties-common +add-apt-repository ppa:ubuntu-toolchain-r/test +apt-get update && apt-get install -y libstdc++6 diff --git a/build/hygiene.js b/build/hygiene.js index bc64a11f8e97e..0a3389bff454d 100644 --- a/build/hygiene.js +++ b/build/hygiene.js @@ -30,10 +30,10 @@ function hygiene(some, linting = true) { const productJson = es.through(function (file) { const product = JSON.parse(file.contents.toString('utf8')); - if (product.extensionsGallery) { - console.error(`product.json: Contains 'extensionsGallery'`); - errorCount++; - } + // if (product.extensionsGallery) { + // console.error(`product.json: Contains 'extensionsGallery'`); + // errorCount++; + // } this.emit('data', file); }); diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts index 3b6fa2df33960..099ce354e84fc 100644 --- a/build/lib/compilation.ts +++ b/build/lib/compilation.ts @@ -21,7 +21,9 @@ import { Mangler } from './mangle/index'; import { RawSourceMap } from 'source-map'; import { gulpPostcss } from './postcss'; const watch = require('./watch'); - +const packageJson = require('../../package.json'); +const productJson = require('../../product.json'); +const replace = require('gulp-replace'); // --- gulp-tsb: compile and transpile -------------------------------- @@ -70,8 +72,20 @@ function createCompile(src: string, build: boolean, emitError: boolean, transpil const postcssNesting = require('postcss-nesting'); + const productJsFilter = util.filter(data => !build && data.path.endsWith('vs/platform/product/common/product.ts')); + const productConfiguration = JSON.stringify({ + ...productJson, + version: `${packageJson.version}-dev`, + nameShort: `${productJson.nameShort} Dev`, + nameLong: `${productJson.nameLong} Dev`, + dataFolderName: `${productJson.dataFolderName}-dev` + }); + const input = es.through(); const output = input + .pipe(productJsFilter) + .pipe(replace(/{\s*\/\*BUILD->INSERT_PRODUCT_CONFIGURATION\*\/\s*}/, productConfiguration, { skipBinary: true })) + .pipe(productJsFilter.restore) .pipe(util.$if(isUtf8Test, bom())) // this is required to preserve BOM in test files that loose it otherwise .pipe(util.$if(!build && isRuntimeJs, util.appendOwnPathSourceURL())) .pipe(util.$if(isCSS, gulpPostcss([postcssNesting()], err => reporter(String(err))))) diff --git a/product.json b/product.json index 27ae53fe16bcd..924bceade1bc8 100644 --- a/product.json +++ b/product.json @@ -1,41 +1,990 @@ { - "nameShort": "Code - OSS", - "nameLong": "Code - OSS", - "applicationName": "code-oss", - "dataFolderName": ".vscode-oss", - "win32MutexName": "vscodeoss", + "nameShort": "RunCode Server", + "nameLong": "RunCode Server", + "applicationName": "runcode-server", + "dataFolderName": ".runcode-server", + "win32MutexName": "runcodeserver", "licenseName": "MIT", - "licenseUrl": "https://github.com/microsoft/vscode/blob/main/LICENSE.txt", - "serverLicenseUrl": "https://github.com/microsoft/vscode/blob/main/LICENSE.txt", + "licenseUrl": "https://github.com/runcode-io/openvscode-web-server/blob/main/LICENSE.txt", + "serverLicenseUrl": "https://github.com/runcode-io/openvscode-web-server/blob/main/LICENSE.txt", "serverGreeting": [], "serverLicense": [], "serverLicensePrompt": "", - "serverApplicationName": "code-server-oss", - "serverDataFolderName": ".vscode-server-oss", - "tunnelApplicationName": "code-tunnel-oss", - "win32DirName": "Microsoft Code OSS", - "win32NameVersion": "Microsoft Code OSS", - "win32RegValueName": "CodeOSS", + "serverApplicationName": "runcode-server", + "serverDataFolderName": ".runcode-server", + "tunnelApplicationName": "runcode-server-tunnel", + "win32DirName": "RunCode", + "win32NameVersion": "RunCode", + "win32RegValueName": "RunCode", "win32x64AppId": "{{D77B7E06-80BA-4137-BCF4-654B95CCEBC5}", "win32arm64AppId": "{{D1ACE434-89C5-48D1-88D3-E2991DF85475}", "win32x64UserAppId": "{{CC6B787D-37A0-49E8-AE24-8559A032BE0C}", "win32arm64UserAppId": "{{3AEBF0C8-F733-4AD4-BADE-FDB816D53D7B}", - "win32AppUserModelId": "Microsoft.CodeOSS", - "win32ShellNameShort": "C&ode - OSS", - "win32TunnelServiceMutex": "vscodeoss-tunnelservice", - "win32TunnelMutex": "vscodeoss-tunnel", - "darwinBundleIdentifier": "com.visualstudio.code.oss", - "linuxIconName": "code-oss", + "win32AppUserModelId": "RunCode Server", + "win32ShellNameShort": "RunCode Server", + "win32TunnelServiceMutex": "runcode.server-tunnelservice", + "win32TunnelMutex": "runcode.server-tunnel", + "darwinBundleIdentifier": "runcode.server", + "linuxIconName": "runcode.server", "licenseFileName": "LICENSE.txt", - "reportIssueUrl": "https://github.com/microsoft/vscode/issues/new", + "twitterUrl": "https://twitter.com/runcode_io", + "reportIssueUrl": "https://github.com/runcode-io/openvscode-web-server/issues/new", + "requestFeatureUrl": "https://github.com/runcode-io/openvscode-web-server/issues", + "reportMarketplaceIssueUrl": "https://github.com/eclipse/openvsx/issues", + "sendASmile": { + "reportIssueUrl": "https://github.com/runcode-io/openvscode-web-server/issues/new", + "requestFeatureUrl": "https://github.com/runcode-io/openvscode-web-server/issues" + }, "nodejsRepository": "https://nodejs.org", - "urlProtocol": "code-oss", + "urlProtocol": "runcode-server", + "embedderIdentifier": "runcode-server", "webviewContentExternalBaseUrlTemplate": "https://{{uuid}}.vscode-cdn.net/insider/ef65ac1ba57f57f2a3961bfe94aa20481caca4c6/out/vs/workbench/contrib/webview/browser/pre/", + "extensionRecommendations": { + "muhammad-sammy.csharp": { + "onFileOpen": [ + { + "pathGlob": "{**/*.cs,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln}", + "important": true + }, + { + "languages": [ + "csharp" + ], + "important": true + }, + { + "pathGlob": "{**/project.json,**/appsettings.json}" + } + ] + }, + "ms-python.python": { + "onFileOpen": [ + { + "pathGlob": "{**/*.py}", + "important": true + }, + { + "languages": [ + "python" + ], + "important": true + }, + { + "pathGlob": "{**/*.ipynb}" + } + ] + }, + "ms-toolsai.jupyter": { + "onFileOpen": [ + { + "pathGlob": "{**/*.py}", + "contentPattern": "^#\\s*%%$", + "important": true, + "whenInstalled": [ + "ms-python.python" + ] + }, + { + "pathGlob": "{**/*.ipynb}" + } + ] + }, + "golang.Go": { + "onFileOpen": [ + { + "pathGlob": "**/*.go", + "important": true + }, + { + "languages": [ + "go" + ], + "important": true + } + ] + }, + "vscjava.vscode-java-pack": { + "onFileOpen": [ + { + "pathGlob": "{**/*.java}", + "important": true, + "whenNotInstalled": [ + "ASF.apache-netbeans-java", + "Oracle.oracle-java" + ] + }, + { + "languages": [ + "java" + ], + "important": true, + "whenNotInstalled": [ + "ASF.apache-netbeans-java", + "Oracle.oracle-java" + ] + } + ] + }, + "ms-vscode.PowerShell": { + "onFileOpen": [ + { + "pathGlob": "{**/*.ps1,**/*.psd1,**/*.psm1}", + "important": true + }, + { + "languages": [ + "powershell" + ], + "important": true + }, + { + "pathGlob": "{**/*.ps.config,**/*.ps1.config}" + } + ] + }, + "ms-azuretools.vscode-docker": { + "onFileOpen": [ + { + "pathGlob": "{**/dockerfile,**/Dockerfile,**/docker-compose.yml,**/docker-compose.*.yml}", + "important": true + }, + { + "languages": [ + "dockerfile" + ], + "important": true + }, + { + "pathGlob": "{**/*.cs,**/project.json,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln,**/appsettings.json,**/*.py,**/*.ipynb,**/*.js,**/*.ts,**/package.json}" + } + ] + }, + "vue.volar": { + "onFileOpen": [ + { + "pathGlob": "{**/*.vue}", + "important": true + }, + { + "languages": [ + "vue" + ], + "important": true + } + ] + }, + "ms-vscode.makefile-tools": { + "onFileOpen": [ + { + "pathGlob": "{**/makefile,**/Makefile}", + "important": true + }, + { + "languages": [ + "makefile" + ], + "important": true + } + ] + }, + "ms-vscode.cmake-tools": { + "onFileOpen": [ + { + "pathGlob": "{**/CMakeLists.txt}", + "important": true + } + ] + }, + "ms-azure-devops.azure-pipelines": { + "onFileOpen": [ + { + "pathGlob": "{**/azure-pipelines.yaml}", + "important": true + } + ] + }, + "msazurermtools.azurerm-vscode-tools": { + "onFileOpen": [ + { + "pathGlob": "{**/azuredeploy.json}", + "important": true + } + ] + }, + "ms-vscode-remote.remote-containers": { + "onFileOpen": [ + { + "pathGlob": "{**/devcontainer.json}", + "important": true + } + ] + }, + "ms-azuretools.vscode-bicep": { + "onFileOpen": [ + { + "pathGlob": "{**/*.bicep}", + "important": true, + "whenNotInstalled": [ + "ms-azuretools.rad-vscode-bicep" + ] + } + ] + }, + "svelte.svelte-vscode": { + "onFileOpen": [ + { + "pathGlob": "{**/*.svelte}", + "important": true + } + ] + }, + "ms-vscode.vscode-github-issue-notebooks": { + "onFileOpen": [ + { + "pathGlob": "{**/*.github-issues}", + "important": true + } + ] + }, + "ms-playwright.playwright": { + "onFileOpen": [ + { + "pathGlob": "{**/*playwright*.config.ts,**/*playwright*.config.js,**/*playwright*.config.mjs}", + "important": true + } + ] + }, + "vscjava.vscode-gradle": { + "onFileOpen": [ + { + "pathGlob": "{**/gradlew,**/gradlew.bat,**/build.gradle,**/build.gradle.kts,**/settings.gradle,**/settings.gradle.kts}", + "important": true + } + ] + }, + "REditorSupport.r": { + "onFileOpen": [ + { + "pathGlob": "{**/*.r}", + "important": true + }, + { + "languages": [ + "r" + ], + "important": true + } + ] + }, + "firefox-devtools.vscode-firefox-debug": { + "onFileOpen": [ + { + "pathGlob": "{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6,**/.babelrc}" + } + ] + }, + "ms-edgedevtools.vscode-edge-devtools": { + "onFileOpen": [ + { + "pathGlob": "{**/*.ts,**/*.tsx,**/*.js,**/*.css,**/*.html}" + } + ] + }, + "Ionide.Ionide-fsharp": { + "onFileOpen": [ + { + "pathGlob": "{**/*.fsx,**/*.fsi,**/*.fs,**/*.ml,**/*.mli}" + } + ] + }, + "dbaeumer.vscode-eslint": { + "onFileOpen": [ + { + "pathGlob": "{**/*.js,**/*.jsx,**/*.es6,**/.eslintrc.*,**/.eslintrc,**/.babelrc,**/jsconfig.json}" + } + ] + }, + "bmewburn.vscode-intelephense-client": { + "onFileOpen": [ + { + "pathGlob": "{**/*.php,**/php.ini}" + } + ] + }, + "xdebug.php-debug": { + "onFileOpen": [ + { + "pathGlob": "{**/*.php,**/php.ini}" + } + ] + }, + "rust-lang.rust-analyzer": { + "onFileOpen": [ + { + "pathGlob": "{**/*.rs,**/*.rslib}" + } + ] + }, + "DavidAnson.vscode-markdownlint": { + "onFileOpen": [ + { + "pathGlob": "{**/*.md}" + } + ] + }, + "EditorConfig.EditorConfig": { + "onFileOpen": [ + { + "pathGlob": "{**/.editorconfig}" + } + ] + }, + "HookyQR.beautify": { + "onFileOpen": [ + { + "pathGlob": "{**/.jsbeautifyrc}" + } + ] + }, + "donjayamanne.githistory": { + "onFileOpen": [ + { + "pathGlob": "{**/.gitignore,**/.git}" + } + ] + }, + "eamodio.gitlens": { + "onFileOpen": [ + { + "pathGlob": "{**/.gitignore,**/.git}" + } + ] + }, + "Shopify.ruby-lsp": { + "onFileOpen": [ + { + "pathGlob": "{**/*.rb,**/*.erb,**/*.reek,**/.fasterer.yml,**/ruby-lint.yml,**/.rubocop.yml}" + } + ] + }, + "DotJoshJohnson.xml": { + "onFileOpen": [ + { + "pathGlob": "{**/*.xml}" + } + ] + }, + "stylelint.vscode-stylelint": { + "onFileOpen": [ + { + "pathGlob": "{**/.stylelintrc,**/stylelint.config.js}" + } + ] + }, + "ms-mssql.mssql": { + "onFileOpen": [ + { + "pathGlob": "{**/*.sql}" + } + ] + }, + "mtxr.sqltools": { + "onFileOpen": [ + { + "pathGlob": "{**/*.sql}" + } + ] + }, + "usqlextpublisher.usql-vscode-ext": { + "onFileOpen": [ + { + "pathGlob": "{**/*.usql}" + } + ] + }, + "ms-vscode.sublime-keybindings": { + "onFileOpen": [ + { + "pathGlob": "{**/.sublime-project,**/.sublime-workspace}" + } + ] + }, + "k--kato.intellij-idea-keybindings": { + "onFileOpen": [ + { + "pathGlob": "{**/.idea}" + } + ] + }, + "christian-kohler.npm-intellisense": { + "onFileOpen": [ + { + "pathGlob": "{**/package.json}" + } + ] + }, + "Angular.ng-template": { + "onFileOpen": [ + { + "pathGlob": "{**/.angular-cli.json,**/angular.json,**/*.ng.html,**/*.ng,**/*.ngml}" + } + ] + }, + "vscjava.vscode-maven": { + "onFileOpen": [ + { + "pathGlob": "**/pom.xml" + } + ] + }, + "ms-azuretools.vscode-azureterraform": { + "onFileOpen": [ + { + "pathGlob": "**/*.tf" + } + ] + }, + "HashiCorp.terraform": { + "onFileOpen": [ + { + "pathGlob": "**/*.tf" + } + ] + }, + "ms-kubernetes-tools.vscode-kubernetes-tools": { + "onFileOpen": [ + { + "pathGlob": "{**/Chart.yaml}" + } + ] + }, + "Oracle.oracledevtools": { + "onFileOpen": [ + { + "pathGlob": "{**/*.sql}" + } + ] + }, + "betterthantomorrow.calva": { + "onFileOpen": [ + { + "pathGlob": "{**/*.clj,**/*.cljs}" + } + ] + }, + "vmware.vscode-boot-dev-pack": { + "onFileOpen": [ + { + "pathGlob": "{**/application.properties}" + } + ] + }, + "GitHub.copilot": { + "onFileOpen": [ + { + "pathGlob": "{**/*.ts,**/*.tsx,**/*.js,**/*.py,**/*.go,**/*.rb}" + } + ], + "onSettingsEditorOpen": {} + }, + "GitHub.vscode-github-actions": { + "onFileOpen": [ + { + "pathGlob": "{**/.github/workflows/*.yml}", + "important": true + } + ] + }, + "mechatroner.rainbow-csv": { + "onFileOpen": [ + { + "pathGlob": "**/*.csv", + "important": true + } + ] + }, + "tomoki1207.pdf": { + "onFileOpen": [ + { + "pathGlob": "**/*.pdf", + "important": true + } + ] + } + }, + "commonlyUsedSettings": [ + "files.autoSave", + "editor.fontSize", + "editor.fontFamily", + "GitHub.copilot.manageExtension", + "editor.tabSize", + "editor.renderWhitespace", + "editor.cursorStyle", + "editor.multiCursorModifier", + "editor.insertSpaces", + "editor.wordWrap", + "files.exclude", + "files.associations", + "workbench.editor.enablePreview" + ], + "keymapExtensionTips": [ + "vscodevim.vim", + "ms-vscode.sublime-keybindings", + "ms-vscode.atom-keybindings", + "ms-vscode.brackets-keybindings", + "ms-vscode.vs-keybindings", + "ms-vscode.notepadplusplus-keybindings", + "k--kato.intellij-idea-keybindings", + "lfs.vscode-emacs-friendly", + "alphabotsec.vscode-eclipse-keybindings", + "alefragnani.delphi-keybindings" + ], + "languageExtensionTips": [ + "ms-python.python", + "muhammad-sammy.csharp", + "ms-toolsai.jupyter", + "vscjava.vscode-java-pack", + "ecmel.vscode-html-css", + "vue.volar", + "bmewburn.vscode-intelephense-client", + "dsznajder.es7-react-js-snippets", + "golang.go", + "ms-vscode.powershell", + "dart-code.dart-code", + "rust-lang.rust-analyzer", + "Shopify.ruby-lsp" + ], + "configBasedExtensionTips": { + "git": { + "configPath": ".git/config", + "configName": "Git", + "recommendations": { + "github.vscode-pull-request-github": { + "name": "GitHub Pull Request", + "contentPattern": "^\\s*url\\s*=\\s*https:\\/\\/github\\.com.*$" + }, + "eamodio.gitlens": { + "name": "GitLens" + } + } + }, + "maven": { + "configPath": "pom.xml", + "configName": "Maven", + "recommendations": { + "vscjava.vscode-java-pack": { + "name": "Java", + "important": true, + "isExtensionPack": true, + "whenNotInstalled": [ + "ASF.apache-netbeans-java" + ] + }, + "vmware.vscode-boot-dev-pack": { + "name": "Spring Boot Extension Pack", + "isExtensionPack": true + } + } + }, + "gradle": { + "configPath": "build.gradle", + "configName": "Gradle", + "recommendations": { + "vscjava.vscode-java-pack": { + "name": "Java", + "important": true, + "isExtensionPack": true, + "whenNotInstalled": [ + "ASF.apache-netbeans-java" + ] + } + } + }, + "github-pull-request": { + "configPath": ".vscode/.github-pull-request.rec", + "configName": "GitHub", + "configScheme": "vscode-vfs", + "recommendations": { + "github.vscode-pull-request-github": { + "name": "GitHub Pull Request", + "important": true + } + } + } + }, + "commandPaletteSuggestedCommandIds": [ + "workbench.action.files.openFile", + "workbench.action.files.openFileFolder", + "workbench.action.files.openFolder", + "workbench.action.remote.showMenu", + "editor.action.formatDocument", + "editor.action.commentLine", + "workbench.action.tasks.runTask", + "workbench.action.openSettings2", + "workbench.action.selectTheme", + "workbench.action.openWalkthrough", + "workbench.action.openIssueReporter" + ], + "extensionKeywords": { + "md": [ + "Markdown" + ], + "js": [ + "JavaScript" + ], + "jsx": [ + "JavaScript" + ], + "es6": [ + "JavaScript" + ], + "html": [ + "Html" + ], + "ts": [ + "TypeScript" + ], + "tsx": [ + "TypeScript" + ], + "css": [ + "CSS" + ], + "scss": [ + "SASS" + ], + "txt": [ + "Text" + ], + "php": [ + "PHP" + ], + "php3": [ + "PHP" + ], + "php4": [ + "PHP" + ], + "ph3": [ + "PHP" + ], + "ph4": [ + "PHP" + ], + "xml": [ + "XML" + ], + "py": [ + "Python" + ], + "pyc": [ + "Python" + ], + "pyd": [ + "Python" + ], + "pyo": [ + "Python" + ], + "pyw": [ + "Python" + ], + "pyz": [ + "Python" + ], + "java": [ + "Java" + ], + "class": [ + "Java" + ], + "jar": [ + "Java" + ], + "c": [ + "c", + "objective c", + "objective-c" + ], + "m": [ + "objective c", + "objective-c" + ], + "mm": [ + "objective c", + "objective-c" + ], + "cpp": [ + "cpp", + "c plus plus", + "c", + "c++" + ], + "cc": [ + "cpp", + "c plus plus", + "c", + "c++" + ], + "cxx": [ + "cpp", + "c plus plus", + "c++" + ], + "hh": [ + "cpp", + "c plus plus", + "c++" + ], + "hpp": [ + "cpp", + "c++" + ], + "h": [ + "cpp", + "c plus plus", + "c++", + "c", + "objective c", + "objective-c" + ], + "sql": [ + "sql" + ], + "sh": [ + "bash" + ], + "bash": [ + "bash" + ], + "zsh": [ + "bash", + "zshell" + ], + "cs": [ + "c#", + "csharp" + ], + "csproj": [ + "c#", + "csharp" + ], + "sln": [ + "c#", + "csharp" + ], + "go": [ + "go" + ], + "sty": [ + "latex" + ], + "tex": [ + "latex" + ], + "ps": [ + "powershell" + ], + "ps1": [ + "powershell" + ], + "rs": [ + "rust" + ], + "rslib": [ + "rust" + ], + "hs": [ + "haskell" + ], + "lhs": [ + "haskell" + ], + "scm": [ + "scheme" + ], + "ss": [ + "scheme" + ], + "clj": [ + "clojure" + ], + "cljs": [ + "clojure" + ], + "cljc": [ + "clojure" + ], + "edn": [ + "clojure" + ], + "erl": [ + "erlang" + ], + "hrl": [ + "erlang" + ], + "scala": [ + "scala" + ], + "sc": [ + "scala" + ], + "pl": [ + "perl" + ], + "pm": [ + "perl" + ], + "t": [ + "perl" + ], + "pod": [ + "perl" + ], + "groovy": [ + "groovy" + ], + "swift": [ + "swift" + ], + "rb": [ + "ruby" + ], + "rbw": [ + "ruby" + ], + "jl": [ + "julia" + ], + "f": [ + "fortran" + ], + "for": [ + "fortran" + ], + "f90": [ + "fortran" + ], + "f95": [ + "fortran" + ], + "coffee": [ + "CoffeeScript" + ], + "litcoffee": [ + "CoffeeScript" + ], + "yaml": [ + "yaml" + ], + "yml": [ + "yaml" + ], + "dart": [ + "dart" + ], + "json": [ + "json" + ] + }, + "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" + ], + "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" + ] + }, "builtInExtensions": [ { "name": "ms-vscode.js-debug-companion", - "version": "1.1.2", - "sha256": "e034b8b41beb4e97e02c70f7175bd88abe66048374c2bd629f54bb33354bc2aa", + "version": "1.1.3", + "sha256": "7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93", "repo": "https://github.com/microsoft/vscode-js-debug-companion", "metadata": { "id": "99cb0b7f-7354-4278-b8da-6cc79972169d", @@ -50,8 +999,8 @@ }, { "name": "ms-vscode.js-debug", - "version": "1.91.0", - "sha256": "53b99146c7fa280f00c74414e09721530c622bf3e5eac2c967ddfb9906b51c80", + "version": "1.92.0", + "sha256": "e5d0a74728292423631f79d076ecb2bc129f9637bcbc2529e48a0fd53baa69cc", "repo": "https://github.com/microsoft/vscode-js-debug", "metadata": { "id": "25629058-ddac-4e17-abba-74678e126c5d", @@ -79,6 +1028,34 @@ }, "publisherDisplayName": "Microsoft" } + }, + { + "name": "redhat.vscode-yaml", + "version": "1.14.0", + "repo": "https://github.com/redhat-developer/vscode-yaml", + "metadata": { + "id": "2061917f-f76a-458a-8da9-f162de22b97e", + "publisherId": { + "publisherId": "eed56242-9699-4317-8bc7-e9f4b9bdd3ff", + "publisherName": "redhat", + "displayName": "Red Hat", + "flags": "verified" + }, + "publisherDisplayName": "Red Hat" + } } - ] + ], + "extensionsGallery": { + "serviceUrl": "https://open-vsx.org/vscode/gallery", + "itemUrl": "https://open-vsx.org/vscode/item", + "resourceUrlTemplate": "https://open-vsx.org/vscode/unpkg/{publisher}/{name}/{version}/{path}", + "controlUrl": "", + "recommendationsUrl": "", + "nlsBaseUrl": "", + "publisherUrl": "" + }, + "linkProtectionTrustedDomains": [ + "https://open-vsx.org" + ], + "quality":"stable" } diff --git a/src/vs/workbench/services/extensions/common/extensionsProposedApi.ts b/src/vs/workbench/services/extensions/common/extensionsProposedApi.ts index 76d560e77b126..3a21b2f59ca61 100644 --- a/src/vs/workbench/services/extensions/common/extensionsProposedApi.ts +++ b/src/vs/workbench/services/extensions/common/extensionsProposedApi.ts @@ -31,7 +31,8 @@ export class ExtensionsProposedApi { this._envEnabledExtensions = new Set((_environmentService.extensionEnabledProposedApi ?? []).map(id => ExtensionIdentifier.toKey(id))); - this._envEnablesProposedApiForAll = + // this._envEnablesProposedApiForAll = + this._envEnablesProposedApiForAll = true || // always enable proposed API !_environmentService.isBuilt || // always allow proposed API when running out of sources (_environmentService.isExtensionDevelopment && productService.quality !== 'stable') || // do not allow proposed API against stable builds when developing an extension (this._envEnabledExtensions.size === 0 && Array.isArray(_environmentService.extensionEnabledProposedApi)); // always allow proposed API if --enable-proposed-api is provided without extension ID