Skip to content

Commit

Permalink
Bump code to 1.78 (#2)
Browse files Browse the repository at this point in the history
* cli: add new control server messages for wsl (microsoft#180438)

* cli: add new control server messages for wsl

* support cwd in spawn

* use auth session id for sync when enabled by embedder (microsoft#180444)

* add plan-items to release notes section (microsoft#180445)

* Oops

* Render both debug frame indicator and breakpoint (microsoft#180448)

* clean up extension recommendations (microsoft#180450)

* clean up extension recommendations

* retain editor config extension

* Add API that exposes interactive session provider name (microsoft#180437)

* Add API that exposes interactive session provider name

* Update command label

* Suppress default text drop if there's also a uri list (microsoft#180452)

* Support markdown string

* Fix search result count again (microsoft#180453)

* Add comment

* Allow description map to be optional

* Add extension based tests

* Fix test

* Try

* Use custom node-gyp for SDL pipeline (microsoft#179723)

* Use custom node-gyp
* Avoid using relative cd
* Remove ia32 for Linux
* Bump gulp-atom-electron; unblocks downloading PDBs
* Add native-is-elevated to the scan

* Allow new codeblock actions to be shown at the top level of the toolbar (microsoft#180460)

* Make description optional when reading storage

* debug session: use queue to make sure debugee status get processed in correct order (microsoft#180410)

Similarly to fed69ad, this adds a queue to serialize the processing
of pause/continue events. Without this, if a pause and continue events
are sent really fast, the pause handler will take longer to process than
the continue handler and the state of the debugger UI will be paused
when the debuggee is actually running.

Fixes microsoft#180409

* No more raw IPC in the Issue Reporter (microsoft#180449)

This is the initial implementation of the issue reporter no longer having raw IPC calls in it.

I think there's plenty more to clean up, but this is a start...

cc @bpasero

cc @Tyriar if you wanna do this for the process explorer

* fix run selected text

* Fix Interactive Session widget role (microsoft#180463)

Fix Interactive Session widget

* cleanup save API (microsoft#180476)

* Revert "add accessibility verbosity settings for terminal and diff editor aria hints" (microsoft#180477)

* changed the weight to workbench contrib

* cancel code lens resolve requests when document is being edited (microsoft#180485)

/~https://github.com/microsoft/vscode-internalbacklog/issues/3884

* show commands only when having reply, proper type for different edit modes

* Fixes microsoft#3928 (microsoft#180404)

* Fixes microsoft#3928

* Fixes CI

* [debt] extract Session object which holds useful state for commands

* Fixes microsoft#153754. (microsoft#180490)

* Fixes microsoft#153754.

* Fixes microsoft#159479

* allow for default sash ratio in diff editor (side-by-side) and use it for inline diff'ing

* Fixes microsoft#173495 (microsoft#180492)

* Fix no tree view error when view is disposed during refresh (microsoft#180415)

Fixes microsoft/vscode-pull-request-github#4002

* add missing monaco.d.ts file

* Remove comments when a comment provider is unregistered (microsoft#180502)

Fixes microsoft/vscode-pull-request-github#4566

* Observed deriveds are now recomputed lazily. (microsoft#180487)

* Observed deriveds are now recomputed lazily.

* Fixes CI

* Fixes observable bug

* Fixes microsoft#173209 (microsoft#180505)

* Fixes accept next word bug

* Fixes microsoft#173209

* Don't dispose model in separate transactions, as deriveds are now computed lazily. (microsoft#180507)

* Fixes microsoft#180224 (microsoft#180511)

* in notebooks cancel inline chat sessions from sibling editors when starting a new session (microsoft#180509)

/~https://github.com/microsoft/vscode-internalbacklog/issues/3897

* extension host - allow to veto stopping (microsoft#179224) (microsoft#180513)

* changing the code so that view in chat is an additional button in the toolbar and the text appears below the toolbar

* adding the context key while waiting for the merge

* changing the css

* Improve selected row checkbox style (microsoft#180515)

Fixes microsoft#180506

* cleanup preview styles and keep status bar consistent (microsoft#180518)

* add `CTX_INTERACTIVE_EDITOR_LAST_RESPONSE_TYPE` and use that to control visiblity accept, cancel, and toggle inline action (microsoft#180517)

* add `CTX_INTERACTIVE_EDITOR_LAST_RESPONSE_TYPE` and use that to control visiblity accept, cancel, and toggle inline action

* fix compile errors

* cleaning the code

* cleaning the code

* Add command for expanding unresolved comments (microsoft#180521)

Fixes microsoft#169928

* adopt tunnel mutex name change (microsoft#180524)

* chore: update electron@22.4.8 (microsoft#180526)

* joh/passive barracuda (microsoft#180530)

* tweak inline diff editor options, make sure livePreview and notebooks is pretty

* tweak logging

* handle 403 and bail out immediately (microsoft#180547)

* Also wait for user data init

* wait only when init is required

* make sure rename disposes it `EditorStateCancellationTokenSource` so that its down-level context key is correctly updated (microsoft#180545)

this is part two of /~https://github.com/microsoft/vscode-internalbacklog/issues/3928

* Don't run chat codeblocks in task terminals (microsoft#180552)

* Add command/keybinding to change drop type (microsoft#180556)

* Add command/keybinding to change drop type

Adds a command/keybinding to toggle the post drop widget

* Also show keybinding

* Code review

* Fix drop widget having transparent background on hover (microsoft#180562)

We now overlay the button-secondaryHoverBackground over editor-widgetBackground

* Update distro

* Oops

* Iios

* Re microsoft#178715. Wait for notebook model to be ready for dispose (microsoft#180560)

* remove unnecessary ? (microsoft#180564)

* ensure focus is set correctly in output, enable keyboard scrolling for outputs

* report telemetry (microsoft#180567)

* Instrument Microsoft account type (microsoft#180573)

So we can see if folks are using MSA or AAD accounts. Also, this cleans up some dead code.

Fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3903

* Specify codeActionKinds (microsoft#180576)

Avoids extra calls and lets us show this info in the UI

* Also search injected text decorations tree for margin decorations (microsoft#180620)

* Also search injected text decorations tree for margin decorations

* Simplify fix

* quick access - allow a `Promise<FastAndSlowPicks<T>>` and adopt for commands (microsoft#180664)

* quick access - allow a `Promise<FastAndSlowPicks<T>>` and adopt for commands

* fix telemetry

* Change the way the InteractiveSessionModel is loaded into the widget (microsoft#180668)

* Change the way the InteractiveSessionModel is loaded into the widget
And the way viewState is managed. Fixes a bunch of general issues with this flow between views and editors

* Fix reloading editor after clear

* don't terminate IE session when observing outside edits (microsoft#180680)

Only when they earase everything cancel IE session, otherwise just live with it

* hide ghost text when invoking IE session (microsoft#180682)

/~https://github.com/microsoft/vscode-internalbacklog/issues/3573

* Fixes microsoft#180222 (microsoft#180681)

* Fixes microsoft#180538 (microsoft#180683)

* Fixes microsoft#180489 (microsoft#180684)

* add jsdoc comment for trackFocus (microsoft#180690)

* work in propgress, adding the fix for the feedback bug also

* Show hover message for diff revert arrow (microsoft#180378)

* fixes microsoft#177444 (microsoft#180704)

* prioritize images over text in accessiblity mode

* Fix microsoft#180588 (microsoft#180708)

* fix microsoft#180670

* cleaning the code

* split out event propagation handling

* using the toggle functionality instead

* pre saving the old data

* use editor options

* polishing the code

* remove true

* Allow negative numbers for `go to match` (microsoft#180479)

Fixes microsoft#180475

Also fixes the case where there are zero matches, which previously resulted in a non-functional quick input

* Pick up latest TS for building VS code (microsoft#180706)

* SCM - ActionBar rendering optimization (microsoft#180712)

* SCM - ActionBar rendering optimization

* address PR comments

---------

Co-authored-by: João Moreno <joao.moreno@microsoft.com>

* add some padding to MD message, restore right alignment of status label

* show accept/discard btns even when last response was a message response

* check the scroll height of the correct element

* Use readonly editor instead of an untitled buffer when showing environment changes

* Use view state to restore InteractiveSessionViewPane session by id (microsoft#180732)

* remove escape to container hotkey

* Organize Errors in GitHub Auth and make sure no double prompting happens (microsoft#180734)

* Organize Errors in GitHub Auth and make sure no double prompting happens

This mostly just moves some strings into variables... but this also fixes the GH Auth side of microsoft#180697 so you should only be asked once if you want to try a different way to log in.

* add comments

* Initial support for notebook CodeActions (microsoft#180740)

* support cmd codeActions on nb save

* add setting

* rm comment

* add log + add await command

* missed a space in setting description

* Improves observable docs

* fix class selection query

* fix message formatting

* fix: Double pasting in webview(using russian keyboard layout) (microsoft#161001) (microsoft#178120)

Co-authored-by: Matt Bierner <matb@microsoft.com>

* Use custom command to open JS doc links (microsoft#180737)

Fixes microsoft#162507

Prevents incorrect auto transform of the uri

* testing: tie test output correctly to runs, rework ui accordingly (microsoft#180746)

* testing: don't enqueue tests into tasks that are created

This is an old artifact that caused problems in the issue this fixes microsoft#180041

When we get a new 'task' from a test run request, we automatically
marked all tests as being enqueued with it. However, tests are now lazily
added to the test run states, so this would only affect tests that
_already_ had their state set to something (e.g. in another task). And
therefore it was also ineffective for its original purpose of marking
all included tests as being Queued, since extensions have had to do that
themselves anyway.

So just remove this code! Also, adjust priorities such that "skipped"
priorities are shown above unset ones.

* testing: tie test output correctly to runs, rework ui accordingly

Previously, test output was handled for an entire TestRunRequest into
a single stream. This didn't match what the public API implied, nor what
the real intentions were.

This makes output be stored correctly on a per-test run (called "tasks"
internally). It changes the order of the Test Results view so that tests
nested under their task, and also improves some of the tree handling
there to update nodes more specifically.

Clicking on the "terminal" button in the test view continues to show
output from the last test run request, but if there were multiple tasks,
the user is asked to choose which they want to view output for.

Finally I removed some old unused code that dealt with storing test
results on disk, which we no longer do, and moved to a simpler interface
instead.

Fixes microsoft#180041

* Apply buffer copy optimization to `updateOutput` oto (microsoft#180755)

For microsoft#168142

Follow up on 9fd77b4. Applies the same optimization to `updateOutput` as well

* Restore welcome message when restoring chat session (microsoft#180756)

* Change the shape of persisted sessions

* Also backup sessions that were not restored in this window

* Restore welcome message when restoring chat session

* add F20-F24 key support for keyboard shortcuts

* remove unused keyCodeOrd from key mappings list

* Feed 📓 error to interactive session. (microsoft#180766)

* Add command to show chat session history (microsoft#180770)

* testing: avoid including individual children in run at cursor if their parent is already included (microsoft#180763)

For #180760

* Add maximum number of persisted chat sessions (microsoft#180775)

* fix microsoft#180721

* build: quieter node module cache logging (microsoft#180709)

* Default Themes: Rename Experimental to Dark Modern (microsoft#180785)

Default Themes: Rename Experimental to Modern

* Merge user port changes with extension forwarded ports (microsoft#180694)

* Merge user port changes with extension forwards

* Actually add port to unrestoredExtensionTunnels

* nit

* context keys: fix: add serialize() support for ContextKeyNotRegexExpr

Fixes microsoft#180012

* update third party notices (microsoft#180788)

* Update ThirdPartyNotices.txt

* update distro

* new default theme: check setting when patching initial colors (microsoft#180687)

* new default theme: check setting when patching initial colors

* remove unneeded imports

* json/css/html: update dependencies (microsoft#180714)

* json/css/html: update dependencies

* update services

* add nls message to preserve link syntax (microsoft#180821)

* add lint rule to prevent type discrimination properties in API types (microsoft#180829)

re microsoft#63943 and other

* remove nb.codeactiononsave setting, add `nb.experimental` to command ID

* update wording

* cli: fix problem restarting tunnel with uppercase letter in name (microsoft#180881)

Fixes microsoft#180693

* Fix drop mime type wildcard regexp (microsoft#180883)

For microsoft#180878

* Disable breakpoint hint when a test loading icon is present (microsoft#180884)

* Add extra notes on `files` drop mime type (microsoft#180886)

Fixes microsoft#180878

* Fix enumItem labels (microsoft#180889)

`javascript.preferences.importModuleSpecifierEnding` and `typescript.preferences.importModuleSpecifierEnding` got out of sync here

* Fix markdown settings localization (microsoft#180891)

The syntax backtick hash str hash backtick was getting mangled.... but it probably should be extracted out so translators don't have the potential for changing it.

* Bump distro (microsoft#180895)

* Fix microsoft#180797. Fine tune edit mode switch. (microsoft#180900)

Fix microsoft#180797.

* Update terminal status even if it is already present

* Fix microsoft#180857. Empty cmd+f should not unset search keyword. (microsoft#180901)

* Fix microsoft#180861. Cell stays in editing mode if it is not modified by find. (microsoft#180902)

* API 💄 (microsoft#180911)

* more cursor overrides: style and blinking

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3864

* making the css selectable by changing the css file

* make sure to restore diff editor focus after repositioning the zone widget

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3964

* back to `computeHumanReadableDiff` diff

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3962

* simplify code for demo (microsoft#180932)

* disable inline completions for inline chat input

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3961

* disabe cmd/ctrl+z for "special undo" of inline chat

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3966

* don't show release notes on web (microsoft#180937)

fixes microsoft#179536

* Fix initial comment expand state (microsoft#180941)

Fixes microsoft#169928

* prevent endless autoSend loop of inline chat (microsoft#180945)

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3990

* "Show Next Change" doesn't show the right change (microsoft#180951)

Fixes microsoft#180744

* make sure EditModeStrategy#apply/cancel isn't called twice, keep reference onto editor model to prevent dispose before reset (microsoft#180952)

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/3963

* Enables experiments for diffEditor.diffAlgorithm (microsoft#180954)

* update distro (microsoft#180953)

* Fix typo in vscode.d.ts (microsoft#177377)

"of" -> "or"

Co-authored-by: Matt Bierner <matb@microsoft.com>

* fix multi range formatting (microsoft#180955)

fixes microsoft#178825

* update distro (microsoft#180957)

* Fix microsoft#177405. Treat error as plain text. (microsoft#180960)

* Fix microsoft#180290. Tweak wording accurately for install/enable missing extension. (microsoft#180961)

* Fix microsoft#163383 (microsoft#180963)

* Fix copying a suggested followup question in chat (microsoft#180965)

* add workspaceTrust to nb "codeaction" infra (microsoft#180968)

* Fix Issue Reporter API (microsoft#180971)

* Fix Issue Reporter API

CancellationTokens aren't hydrated over ProxyChannels so I've removed cancellation logic.

Additionally, there was a bad string compare that needed toLower when checking if an extension has a handler.

Additionally, added docs.

Fixes microsoft#180890
Fixes microsoft#180920
Fixes microsoft#180887

* remove import

* remove another import

* [json] update service (microsoft#180972)

* fix microsoft#180899

* Notification marker color turns grey when selected (microsoft#180973)

* Add mode to the notification (microsoft#180977)

ref microsoft#180803 (comment)

* Add overrideCategory back (microsoft#180975)

* Update getting started theme picker images to reflect new themes (microsoft#180976)

* Update getting started theme picker assets to reflect new themes

* Update theme names

* Fixes bug in observable utility

* Fixes microsoft#180792

* Fixes CI

* Update vscode.d.ts for clearSessionPreference (microsoft#180979)

Fixes microsoft#180860

* Use a colon instead of quotes to handle long queries better (microsoft#180980)

Fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/4021

* fix microsoft#172465

* undo some changes

* Allow clicking to remove breakpoint even alongside non debug decorations (microsoft#180986)

* Load chat username/icon from current session, not persisted data (microsoft#180981)

* update distro (microsoft#180992)

* Avoid double encoding vscode.dev links (microsoft#181002)

* Fixes microsoft#181007 (microsoft#181008)

* Fixes microsoft#181009 (microsoft#181011)

* Fixes microsoft#181009

* Use isMeasurement: true for boolean

* Use correct key for hybrid port unforwarding (microsoft#181005)

* Use correct key for hybrid port unforwarding

* Use forwarded host for closing

* Delete key from this.autoForwarded

* Adds telemetry to understand how long the diff editor was visible to the user. (microsoft#181021)

* Adds telemetry to understand how long the diff editor was visible to the user.

* Uses StopWatch utility.

* Fixes CI

* 💄

* 💄

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>

* enable live preview for last line of document. for that... (microsoft#181029)

- support `ordinal` and `showInHiddenAreas` for `IViewZone`
- adopt in zoneWidget
- adopt for inline chat widgets
- remove code that isn't needed anymore 👯‍♂️

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/4024

* fix microsoft#175014

* fix tab order for hidden status element when a message shows

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/4039

* don't use role or aria-label attributes so that contents get read out

fixes /~https://github.com/microsoft/vscode-internalbacklog/issues/4035

* Add a couple teammates to my-endgame notebook (microsoft#181059)

* Add a couple teammates to my-endgame notebook

friends :)

* Add @Yoyokrazy

* Add @paulacamargo25

* debug: bump js-debug (microsoft#181049)

Fixes microsoft#181047

* Revert "Fix: diff editor arrow click enables breakpoint " (microsoft#181040)

* Set glyph margin decoration width appropriately (microsoft#181071)

* Move opening default built-in walkthrough to after built-in walkthrough initialization (microsoft#181066)

* chore: bump distro (microsoft#181104)

* Unexpected theme name showing up in web (microsoft#181091)

* Unexpected theme name showing up in web

* incorperate feedback

* Install extension in the right server (microsoft#181110)

* Fixes `PieceTreeBase.equal` (microsoft#181125)

Fixes `PieceTreeBase.equal` (fixes microsoft/vscode-internalbacklog#4025)

* Revert "Fixes `PieceTreeBase.equal` (microsoft#181125)" (microsoft#181270)

This reverts commit 3862229.

* cli: tunnels can sporadically become unresponsive (microsoft#181286)

Last iteration I moved some RPC logic to use Tokios "codecs" to give
them cancellation safety. These operate on streams of input data.

While this worked at first, I failed to take into account that the byte
buffer we read from the stream could have _more_ data than just the
current message under load scenarios. We were discarding any extra data
from the subsequent message. In most cases caused the next message
"length" to be read from the middle of the next message, which usually
(when parsed as a u32) was some number of gigabytes, then causing the
connection to stall forever.

Fixes microsoft#181284

* Add temporary nodeJS walkthrough (microsoft#181442)

* bump version

* unc - adopt setting and handling of allow list (gitpod-io#5)

* unc - adopt setting and handling of allow list

* unc - set allow list on server too

* unc - pick our patched node.js for now

* bump electron

* unc - ignore sync is not needed with machine scope

* unc - use process set directly

* 🆙 22.5.1

* code web server initial commit

* Don't test the Feedback component

* enable prebuilds for all branches

* Add example guide for pre-installing vscode extensions with docker installation

* 💄

* Update deprecated example in README 

Option 'connection-secret' is deprecated: Use connection-token-file instead.

* Fix default image destroyed in merge

* Port the delayed signal patch to gp-code-1.78

* Fix build

* Remove access token requirement as we're running in a sandbox

* Revert "Remove access token requirement as we're running in a sandbox"

This reverts commit 8a7a90c.
Use the --without-connection-token arg instead

---------

Co-authored-by: Connor Peet <connor@peet.io>
Co-authored-by: Sandeep Somavarapu <sasomava@microsoft.com>
Co-authored-by: First <karraj@microsoft.com>
Co-authored-by: Joyce Er <joyce.er@microsoft.com>
Co-authored-by: Rob Lourens <roblourens@gmail.com>
Co-authored-by: Matt Bierner <matb@microsoft.com>
Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
Co-authored-by: Florent Revest <revestflo@gmail.com>
Co-authored-by: Tyler James Leonhardt <me@tylerleonhardt.com>
Co-authored-by: Megan Rogge <merogge@microsoft.com>
Co-authored-by: Johannes Rieken <johannes.rieken@gmail.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Alexandru Dima <alexdima@microsoft.com>
Co-authored-by: Aiday Marlen Kyzy <amarlenkyzy@microsoft.com>
Co-authored-by: Henning Dieterichs <hdieterichs@microsoft.com>
Co-authored-by: Alex Ross <alros@microsoft.com>
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: Peng Lyu <penn.lv@gmail.com>
Co-authored-by: aamunger <aamunger@microsoft.com>
Co-authored-by: João Moreno <joao.moreno@microsoft.com>
Co-authored-by: meganrogge <megan.rogge@microsoft.com>
Co-authored-by: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com>
Co-authored-by: Michael Lively <milively@microsoft.com>
Co-authored-by: dongfang <wb.yindongfang@mesg.corp.netease.com>
Co-authored-by: Ilia Pozdnyakov <ilia.pozdnyakov@ya.ru>
Co-authored-by: Ulugbek Abdullaev <ulugbekna@gmail.com>
Co-authored-by: Lakshya A Agrawal <lakshya18242@iiitd.ac.in>
Co-authored-by: Bhavya U <bhavyau@microsoft.com>
Co-authored-by: David Dossett <ddossett@microsoft.com>
Co-authored-by: SteVen Batten <steven.m.batten@outlook.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
Co-authored-by: Filip Troníček <filip@gitpod.io>
Co-authored-by: Anton Kosyakov <anton@gitpod.io>
Co-authored-by: AXON <axonasif@gmail.com>
Co-authored-by: Jean Pierre <jeanp413@hotmail.com>
Co-authored-by: Bjarne Sievers <jellyfishcoding@live.de>
  • Loading branch information
Show file tree
Hide file tree
Showing 5,016 changed files with 396,962 additions and 206,258 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
12 changes: 12 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM mcr.microsoft.com/devcontainers/typescript-node:16-bullseye

ADD install-vscode.sh /root/
RUN /root/install-vscode.sh

RUN git config --system codespaces-theme.hide-status 1

USER node
RUN YARN_CACHE="$(yarn cache dir)" && rm -rf "$YARN_CACHE" && ln -s /vscode-dev/yarn-cache "$YARN_CACHE"

USER root
CMD chown node:node /vscode-dev && sudo -u node mkdir -p /vscode-dev/yarn-cache && sleep inf
86 changes: 18 additions & 68 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -1,84 +1,32 @@
# Code - OSS Development Container

[![Open in Remote - Containers](https://img.shields.io/static/v1?label=Remote%20-%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=/~https://github.com/microsoft/vscode)
This dev container includes configuration for a development container for working with Code - OSS in a local container. For using [GitHub Codespaces](https://github.com/features/codespaces) follow the [prebuilt setup](prebuilt/README.md) which installs VNC for displaying the application window.

This repository includes configuration for a development container for working with Code - OSS in a local container or using [GitHub Codespaces](https://github.com/features/codespaces).
> **Note:** You will need X11's `DISPLAY` or Wayland's `WAYLAND_DISPLAY` environment variable set locally to allow for the Code - OSS window to display. See [Running GUI app on WSL](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps) for Windows and [Quartz](https://www.xquartz.org) for Mac.
> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` and a web client is available on port `6080`.
## Quick start - local

If you already have VS Code and Docker installed, you can click the badge above or [here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=/~https://github.com/microsoft/vscode) to get started. Clicking these links will cause VS Code to automatically install the Remote - Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use.
## Quick start

1. Install Docker Desktop or Docker for Linux on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)

2. **Important**: Docker needs at least **4 Cores and 8 GB of RAM** to run a full build. If you are on macOS, or are using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item and going to **Preferences/Settings > Resources > Advanced**.
2. **Important**: Docker needs at least **4 Cores and 8 GB of RAM** to run a full build with **9 GB of RAM** being recommended. If you are on macOS, or are using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item and going to **Preferences/Settings > Resources > Advanced**.

> **Note:** The [Resource Monitor](https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor) extension is included in the container so you can keep an eye on CPU/Memory in the status bar.
3. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Remote - Containers](https://aka.ms/vscode-remote/download/containers) extension.

![Image of Remote - Containers extension](https://microsoft.github.io/vscode-remote-release/images/remote-containers-extn.png)

> **Note:** The Remote - Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
4. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd> and select **Remote-Containers: Clone Repository in Container Volume...**.

> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or when using the Hyper-V engine on Windows. We recommend the "clone repository in container" approach instead since it uses "named volume" rather than the local filesystem.
5. Type `/~https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press <kbd>Enter</kbd>.

6. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080), or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.

Anything you start in VS Code, or the integrated terminal, will appear here.

Next: **[Try it out!](#try-it)**

## Quick start - GitHub Codespaces

1. From the [microsoft/vscode GitHub repository](/~https://github.com/microsoft/vscode), click on the **Code** dropdown, select **Open with Codespaces**, and then click on **New codespace**. If prompted, select the **Standard** machine size (which is also the default).

> **Note:** You will not see these options within GitHub if you are not in the Codespaces beta.
2. After the codespace is up and running in your browser, press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd> and select **Ports: Focus on Ports View**.

3. You should see **VNC web client (6080)** under in the list of ports. Select the line and click on the globe icon to open it in a browser tab.
3. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Dev Containers](https://aka.ms/vscode-remote/download/containers) extension.

> **Tip:** If you do not see the port, <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd>, select **Forward a Port** and enter port `6080`.
![Image of Dev Containers extension](https://microsoft.github.io/vscode-remote-release/images/dev-containers-extn.png)

4. In the new tab, you should see noVNC. Click **Connect** and enter `vscode` as the password.
> **Note:** The Dev Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
Anything you start in VS Code, or the integrated terminal, will appear here.

Next: **[Try it out!](#try-it)**

### Using VS Code with GitHub Codespaces

You may see improved VNC responsiveness when accessing a codespace from VS Code client since you can use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Here's how to do it.

1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the the [GitHub Codespaces extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces).

> **Note:** The GitHub Codespaces extension requires the Visual Studio Code distribution of Code - OSS.
2. After the VS Code is up and running, press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd>, choose **Codespaces: Create New Codespace**, and use the following settings:
- `microsoft/vscode` for the repository.
- Select any branch (e.g. **main**) - you can select a different one later.
- Choose **Standard** (4-core, 8GB) as the size.

4. After you have connected to the codespace, you can use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.

> **Tip:** You may also need change your VNC client's **Picture Quality** setting to **High** to get a full color desktop.
5. Anything you start in VS Code, or the integrated terminal, will appear here.
4. Due to the size of the repository we strongly recommend cloning it on a Linux filesystem for better bind mount performance. On macOS we recommend using a Docker volume (press <kbd>F1</kbd> and select **Dev Containers: Clone Repository in Container Volume...**) and on Windows we recommend using a WSL folder:
- Make sure you are running a recent WSL version to get X11 and Wayland support.
- Use the WSL extension for VS Code to open the cloned folder in WSL.
- Press <kbd>F1</kbd> and select **Dev Containers: Reopen in Container**.

Next: **[Try it out!](#try-it)**

## Try it!

This container uses the [Fluxbox](http://fluxbox.org/) window manager to keep things lean. **Right-click on the desktop** to see menu options. It works with GNOME and GTK applications, so other tools can be installed if needed.

> **Note:** You can also set the resolution from the command line by typing `set-resolution`.
To start working with Code - OSS, follow these steps:

1. In your local VS Code client, open a terminal (<kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>\`</kbd>) and type the following commands:
Expand All @@ -88,18 +36,20 @@ To start working with Code - OSS, follow these steps:
bash scripts/code.sh
```

2. After the build is complete, open a web browser or a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to the desktop environment as described in the quick start and enter `vscode` as the password.

3. You should now see Code - OSS!
2. You should now see Code - OSS!

Next, let's try debugging.
1. Shut down Code - OSS by clicking the box in the upper right corner of the Code - OSS window through your browser or VNC viewer.
1. Shut down Code - OSS by clicking the box in the upper right corner of the Code - OSS window.
2. Go to your local VS Code client, and use the **Run / Debug** view to launch the **VS Code** configuration. (Typically the default, so you can likely just press <kbd>F5</kbd>).
> **Note:** If launching times out, you can increase the value of `timeout` in the "VS Code", "Attach Main Process", "Attach Extension Host", and "Attach to Shared Process" configurations in [launch.json](../.vscode/launch.json). However, running `scripts/code.sh` first will set up Electron which will usually solve timeout issues.
> **Note:** If launching times out, you can increase the value of `timeout` in the "VS Code", "Attach Main Process", "Attach Extension Host", and "Attach to Shared Process" configurations in [launch.json](../../.vscode/launch.json). However, running `scripts/code.sh` first will set up Electron which will usually solve timeout issues.
3. After a bit, Code - OSS will appear with the debugger attached!
Enjoy!
# Notes
The container comes with VS Code Insiders installed. To run it from an Integrated Terminal use `VSCODE_IPC_HOOK_CLI= /usr/bin/code-insiders .`.
50 changes: 16 additions & 34 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,40 +1,22 @@
{
"name": "Code - OSS",

// Image contents: /~https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile
"image": "mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:branch-main",
"overrideCommand": false,
"runArgs": [ "--init", "--security-opt", "seccomp=unconfined", "--shm-size=1g"],

"settings": {
"resmon.show.battery": false,
"resmon.show.cpufreq": false
"name": "Code - OSS with X11/Wayland",
"build": {
"dockerfile": "Dockerfile"
},

// noVNC, VNC
"forwardPorts": [6080, 5901],
"portsAttributes": {
"6080": {
"label": "VNC web client (noVNC)",
"onAutoForward": "silent"
},
"5901": {
"label": "VNC TCP port",
"onAutoForward": "silent"
"overrideCommand": false,
"privileged": true,
"mounts": [
{
"source": "vscode-dev",
"target": "/vscode-dev",
"type": "volume"
}
},

"extensions": [
"dbaeumer.vscode-eslint",
"mutantdino.resourcemonitor"
],

// Optionally loads a cached yarn install for the repo
"postCreateCommand": ".devcontainer/cache/restore-diff.sh",

"remoteUser": "node",

"hostRequirements": {
"memory": "8gb"
"customizations": {
"vscode": {
"extensions": [
"mutantdino.resourcemonitor"
]
}
}
}
12 changes: 12 additions & 0 deletions .devcontainer/install-vscode.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

apt update
apt install -y wget gpg

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg

apt update
apt install -y code-insiders libsecret-1-dev libxkbfile-dev
105 changes: 105 additions & 0 deletions .devcontainer/prebuilt/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Code - OSS Development Container

[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=/~https://github.com/microsoft/vscode)

This repository includes configuration for a development container for working with Code - OSS in a local container or using [GitHub Codespaces](/~https://github.com/features/codespaces).

> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` and a web client is available on port `6080`.
## Quick start - local

If you already have VS Code and Docker installed, you can click the badge above or [here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=/~https://github.com/microsoft/vscode) to get started. Clicking these links 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.

1. Install Docker Desktop or Docker for Linux on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)

2. **Important**: Docker needs at least **4 Cores and 8 GB of RAM** to run a full build with **9 GB of RAM** being recommended. If you are on macOS, or are using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item and going to **Preferences/Settings > Resources > Advanced**.

> **Note:** The [Resource Monitor](https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor) extension is included in the container so you can keep an eye on CPU/Memory in the status bar.
3. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Dev Containers](https://aka.ms/vscode-remote/download/containers) extension.

![Image of Dev Containers extension](https://microsoft.github.io/vscode-remote-release/images/dev-containers-extn.png)

> **Note:** The Dev Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
4. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd> and select **Dev Containers: Clone Repository in Container Volume...**.

> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or when using the Hyper-V engine on Windows. We recommend the "clone repository in container" approach instead since it uses "named volume" rather than the local filesystem.
5. Type `/~https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press <kbd>Enter</kbd>.

6. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080), or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.

Anything you start in VS Code, or the integrated terminal, will appear here.

Next: **[Try it out!](#try-it)**

## Quick start - GitHub Codespaces

1. From the [microsoft/vscode GitHub repository](/~https://github.com/microsoft/vscode), click on the **Code** dropdown, select **Open with Codespaces**, and then click on **New codespace**. If prompted, select the **Standard** machine size (which is also the default).

> **Note:** You will not see these options within GitHub if you are not in the Codespaces beta.
2. After the codespace is up and running in your browser, press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd> and select **Ports: Focus on Ports View**.

3. You should see **VNC web client (6080)** under in the list of ports. Select the line and click on the globe icon to open it in a browser tab.

> **Tip:** If you do not see the port, <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd>, select **Forward a Port** and enter port `6080`.
4. In the new tab, you should see noVNC. Click **Connect** and enter `vscode` as the password.

Anything you start in VS Code, or the integrated terminal, will appear here.

Next: **[Try it out!](#try-it)**

### Using VS Code with GitHub Codespaces

You may see improved VNC responsiveness when accessing a codespace from VS Code client since you can use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Here's how to do it.

1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the the [GitHub Codespaces extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces).

> **Note:** The GitHub Codespaces extension requires the Visual Studio Code distribution of Code - OSS.
2. After the VS Code is up and running, press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> or <kbd>F1</kbd>, choose **Codespaces: Create New Codespace**, and use the following settings:
- `microsoft/vscode` for the repository.
- Select any branch (e.g. **main**) - you can select a different one later.
- Choose **Standard** (4-core, 8GB) as the size.

4. After you have connected to the codespace, you can use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.

> **Tip:** You may also need change your VNC client's **Picture Quality** setting to **High** to get a full color desktop.
5. Anything you start in VS Code, or the integrated terminal, will appear here.

Next: **[Try it out!](#try-it)**

## Try it!

This container uses the [Fluxbox](http://fluxbox.org/) window manager to keep things lean. **Right-click on the desktop** to see menu options. It works with GNOME and GTK applications, so other tools can be installed if needed.

> **Note:** You can also set the resolution from the command line by typing `set-resolution`.
To start working with Code - OSS, follow these steps:

1. In your local VS Code client, open a terminal (<kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>\`</kbd>) and type the following commands:

```bash
yarn install
bash scripts/code.sh
```

2. After the build is complete, open a web browser or a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to the desktop environment as described in the quick start and enter `vscode` as the password.

3. You should now see Code - OSS!

Next, let's try debugging.
1. Shut down Code - OSS by clicking the box in the upper right corner of the Code - OSS window through your browser or VNC viewer.
2. Go to your local VS Code client, and use the **Run / Debug** view to launch the **VS Code** configuration. (Typically the default, so you can likely just press <kbd>F5</kbd>).
> **Note:** If launching times out, you can increase the value of `timeout` in the "VS Code", "Attach Main Process", "Attach Extension Host", and "Attach to Shared Process" configurations in [launch.json](../../.vscode/launch.json). However, running `scripts/code.sh` first will set up Electron which will usually solve timeout issues.
3. After a bit, Code - OSS will appear with the debugger attached!
Enjoy!
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ fi

TAG="branch-${BRANCH//\//-}"
echo "[$(date)] ${BRANCH} => ${TAG}"
cd "${SCRIPT_PATH}/../.."
cd "${SCRIPT_PATH}/../../.."

echo "[$(date)] Starting image build and push..."
export DOCKER_BUILDKIT=1
Expand Down
File renamed without changes.
Loading

0 comments on commit a8df5de

Please sign in to comment.