-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Import VSCode History as of 2022-05-24
- Loading branch information
1 parent
afb5abe
commit c080c66
Showing
5,866 changed files
with
1,657,266 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# 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 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 Remote - 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. 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. | ||
|
||
> **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! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/usr/bin/env bash | ||
|
||
# This file establishes a basline for the repository before any steps in the "prepare.sh" | ||
# are run. Its just a find command that filters out a few things we don't need to watch. | ||
|
||
set -e | ||
SOURCE_FOLDER="${1:-"."}" | ||
CACHE_FOLDER="${2:-"$HOME/.devcontainer-cache"}" | ||
|
||
cd "${SOURCE_FOLDER}" | ||
echo "[$(date)] Generating ""before"" manifest..." | ||
mkdir -p "${CACHE_FOLDER}" | ||
find -L . -not -path "*/.git/*" -and -not -path "${CACHE_FOLDER}/*.manifest" -type f > "${CACHE_FOLDER}/before.manifest" | ||
echo "[$(date)] Done!" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#!/bin/bash | ||
|
||
# This file simply wraps the docker build command to build an image that includes | ||
# a cache.tar file with the result of "prepare.sh" inside of it. See cache.Dockerfile | ||
# for the steps that are actually taken to do this. | ||
|
||
set -e | ||
|
||
SCRIPT_PATH="$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)" | ||
CONTAINER_IMAGE_REPOSITORY="$1" | ||
BRANCH="${2:-"main"}" | ||
|
||
if [ "${CONTAINER_IMAGE_REPOSITORY}" = "" ]; then | ||
echo "Container repository not specified!" | ||
exit 1 | ||
fi | ||
|
||
TAG="branch-${BRANCH//\//-}" | ||
echo "[$(date)] ${BRANCH} => ${TAG}" | ||
cd "${SCRIPT_PATH}/../.." | ||
|
||
echo "[$(date)] Starting image build and push..." | ||
export DOCKER_BUILDKIT=1 | ||
docker buildx create --use --name vscode-dev-containers | ||
docker run --privileged --rm tonistiigi/binfmt --install all | ||
docker buildx build --push --platform linux/amd64,linux/arm64 -t ${CONTAINER_IMAGE_REPOSITORY}:"${TAG}" -f "${SCRIPT_PATH}/cache.Dockerfile" . | ||
|
||
echo "[$(date)] Done!" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/usr/bin/env bash | ||
|
||
# This file is used to archive off a copy of any differences in the source tree into another location | ||
# in the image. Once the codespace / container is up, this will be restored into its proper location. | ||
|
||
set -e | ||
|
||
SOURCE_FOLDER="${1:-"."}" | ||
CACHE_FOLDER="${2:-"$HOME/.devcontainer-cache"}" | ||
|
||
if [ ! -d "${CACHE_FOLDER}" ]; then | ||
echo "No cache folder found. Be sure to run before-cache.sh to set one up." | ||
exit 1 | ||
fi | ||
|
||
echo "[$(date)] Starting cache operation..." | ||
cd "${SOURCE_FOLDER}" | ||
echo "[$(date)] Determining diffs..." | ||
find -L . -not -path "*/.git/*" -and -not -path "${CACHE_FOLDER}/*.manifest" -type f > "${CACHE_FOLDER}/after.manifest" | ||
grep -Fxvf "${CACHE_FOLDER}/before.manifest" "${CACHE_FOLDER}/after.manifest" > "${CACHE_FOLDER}/cache.manifest" | ||
echo "[$(date)] Archiving diffs..." | ||
tar -cf "${CACHE_FOLDER}/cache.tar" --totals --files-from "${CACHE_FOLDER}/cache.manifest" | ||
echo "[$(date)] Done! $(du -h "${CACHE_FOLDER}/cache.tar")" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# This dockerfile is used to build up from a base image to create an image a cache.tar file containing the results of running "prepare.sh". | ||
# Other image contents: https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile | ||
|
||
# This first stage generates cache.tar | ||
FROM mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev as cache | ||
ARG USERNAME=node | ||
ARG CACHE_FOLDER="/home/${USERNAME}/.devcontainer-cache" | ||
COPY --chown=${USERNAME}:${USERNAME} . /repo-source-tmp/ | ||
RUN mkdir -p ${CACHE_FOLDER} && chown ${USERNAME} ${CACHE_FOLDER} /repo-source-tmp \ | ||
&& su ${USERNAME} -c "\ | ||
cd /repo-source-tmp \ | ||
&& .devcontainer/cache/before-cache.sh . ${CACHE_FOLDER} \ | ||
&& .devcontainer/prepare.sh . ${CACHE_FOLDER} \ | ||
&& .devcontainer/cache/cache-diff.sh . ${CACHE_FOLDER}" | ||
|
||
# This second stage starts fresh and just copies in cache.tar from the previous stage. The related | ||
# devcontainer.json file is then setup to have postCreateCommand fire restore-diff.sh to expand it. | ||
FROM mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev as dev-container | ||
ARG USERNAME=node | ||
ARG CACHE_FOLDER="/home/${USERNAME}/.devcontainer-cache" | ||
RUN mkdir -p "${CACHE_FOLDER}" \ | ||
&& chown "${USERNAME}:${USERNAME}" "${CACHE_FOLDER}" \ | ||
&& su ${USERNAME} -c "git config --global codespaces-theme.hide-status 1" | ||
COPY --from=cache ${CACHE_FOLDER}/cache.tar ${CACHE_FOLDER}/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#!/usr/bin/env bash | ||
|
||
# This file expands the cache.tar file in the image that contains the results of "prepare.sh" | ||
# on top of the source tree. It runs as a postCreateCommand which runs after the container/codespace | ||
# is already up where you would typically run a command like "yarn install". | ||
|
||
set -e | ||
SOURCE_FOLDER="$(cd "${1:-"."}" && pwd)" | ||
CACHE_FOLDER="${2:-"$HOME/.devcontainer-cache"}" | ||
|
||
if [ ! -d "${CACHE_FOLDER}" ]; then | ||
echo "No cache folder found." | ||
exit 0 | ||
fi | ||
|
||
echo "[$(date)] Expanding $(du -h "${CACHE_FOLDER}/cache.tar") file to ${SOURCE_FOLDER}..." | ||
cd "${SOURCE_FOLDER}" | ||
# Ensure user/group is correct if the UID/GID was changed for some reason | ||
echo "+1000 +$(id -u)" > "${CACHE_FOLDER}/cache-owner-map" | ||
echo "+1000 +$(id -g)" > "${CACHE_FOLDER}/cache-group-map" | ||
# Untar to workspace folder, preserving permissions and order, but mapping GID/UID if required | ||
tar --owner-map="${CACHE_FOLDER}/cache-owner-map" --group-map="${CACHE_FOLDER}/cache-group-map" -xpsf "${CACHE_FOLDER}/cache.tar" | ||
rm -rf "${CACHE_FOLDER}" | ||
echo "[$(date)] Done!" | ||
|
||
# Change ownership of chrome-sandbox | ||
sudo chown root .build/electron/chrome-sandbox | ||
sudo chmod 4755 .build/electron/chrome-sandbox | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
{ | ||
"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 | ||
}, | ||
|
||
// noVNC, VNC | ||
"forwardPorts": [6080, 5901], | ||
"portsAttributes": { | ||
"6080": { | ||
"label": "VNC web client (noVNC)", | ||
"onAutoForward": "silent" | ||
}, | ||
"5901": { | ||
"label": "VNC TCP port", | ||
"onAutoForward": "silent" | ||
} | ||
}, | ||
|
||
"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" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/usr/bin/env bash | ||
|
||
# This file contains the steps that should be run when building a "cache" image with contents that should be | ||
# layered directly **on top of the source tree** once a dev container is created. This avoids having to run long | ||
# running commands like "yarn install" from the ground up. Developers (and should) still run these commands | ||
# after the actual dev container is created, but only differences will be processed. | ||
|
||
yarn install | ||
yarn electron |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# EditorConfig is awesome: https://EditorConfig.org | ||
|
||
# top-most EditorConfig file | ||
root = true | ||
|
||
# Tab indentation | ||
[*] | ||
indent_style = tab | ||
trim_trailing_whitespace = true | ||
|
||
# The indent size used in the `package.json` file cannot be changed | ||
# https://github.com/npm/npm/pull/3180#issuecomment-16336516 | ||
[{*.yml,*.yaml,package.json}] | ||
indent_style = space | ||
indent_size = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
**/build/*/**/*.js | ||
**/dist/**/*.js | ||
**/extensions/**/*.d.ts | ||
**/extensions/**/build/** | ||
**/extensions/**/colorize-fixtures/** | ||
**/extensions/css-language-features/server/test/pathCompletionFixtures/** | ||
**/extensions/html-language-features/server/lib/jquery.d.ts | ||
**/extensions/html-language-features/server/src/test/pathCompletionFixtures/** | ||
**/extensions/markdown-language-features/media/** | ||
**/extensions/markdown-language-features/notebook-out/** | ||
**/extensions/markdown-math/notebook-out/** | ||
**/extensions/notebook-renderers/renderer-out/index.js | ||
**/extensions/simple-browser/media/index.js | ||
**/extensions/typescript-language-features/test-workspace/** | ||
**/extensions/vscode-api-tests/testWorkspace/** | ||
**/extensions/vscode-api-tests/testWorkspace2/** | ||
**/fixtures/** | ||
**/node_modules/** | ||
**/out-*/**/*.js | ||
**/out-editor-*/** | ||
**/out/**/*.js | ||
**/src/**/dompurify.js | ||
**/src/**/marked.js | ||
**/src/**/semver.js | ||
**/src/typings/**/*.d.ts | ||
**/src/vs/*/**/*.d.ts | ||
**/src/vs/base/test/common/filters.perf.data.js | ||
**/src/vs/css.build.js | ||
**/src/vs/css.js | ||
**/src/vs/loader.js | ||
**/src/vs/nls.build.js | ||
**/src/vs/nls.js | ||
**/test/unit/assert.js | ||
**/typings/** |
Oops, something went wrong.