Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updating fork #1

Merged
merged 10,000 commits into from
Sep 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
66ab658
Add back hideHover and use on tree context menu show
alexr00 Sep 8, 2020
5109695
Update distro
Tyriar Sep 8, 2020
1003166
:lipstick:
joaomoreno Sep 8, 2020
8abace1
explorer: Fix TrustedTypes violation
isidorn Sep 8, 2020
1f99a82
produce deb, rpm packages
joaomoreno Sep 8, 2020
fc4163e
Add loginShell (microsoft/vscode-remote-release#3593)
chrmarti Sep 8, 2020
ce19502
chore - tweak onDidAddNotebookDocument, onDidRemoveNotebookDocument e…
jrieken Sep 8, 2020
7b08ea7
notebook update
jrieken Sep 8, 2020
436567c
pinned tabs - update setting enum name
bpasero Sep 8, 2020
12fc18b
Use innerText over innerHTML, https://github.com/microsoft/vscode/iss…
jrieken Sep 8, 2020
7b93ed0
rename to IHostColorSchemeService
aeschli Sep 8, 2020
52e557f
API proposal for tree item icon color
alexr00 Sep 8, 2020
44b1737
chore - when target might be undefined use `target?.dispose()` over `…
jrieken Sep 8, 2020
8ebad58
deprecate onDidChangeCells
rebornix Sep 8, 2020
7a92c46
Reenable notebook smoke test #105330
roblourens Sep 8, 2020
a98552c
deprecate onDidChangeContent
rebornix Sep 8, 2020
cd3c52b
Add numeric values support for terminal.integrated.fontWeight
IllusionMH Sep 3, 2020
17d779c
unified onDidChangeContent
rebornix Sep 8, 2020
a7a501f
node-pty@0.10.0-beta17
Tyriar Sep 8, 2020
b2a389c
:lipstick:
rebornix Sep 8, 2020
8b0a7c9
debt - remove _unInitializedDocuments
jrieken Sep 8, 2020
e429fc3
remove `NotebookDocument#displayOrder` , fixes https://github.com/mic…
jrieken Sep 8, 2020
ed377f9
no uninitialized documents.
rebornix Sep 8, 2020
62f1bf8
chore - update references viewlet
jrieken Sep 8, 2020
76e45c2
debug: make serverReadyAction play nicely with js-debug
connor4312 Sep 8, 2020
034f6fc
fix rpm
joaomoreno Sep 8, 2020
baef0ae
high contrast switching in browser
aeschli Sep 8, 2020
7248c9a
Fix occasional bad custom selectbox layout
roblourens Sep 8, 2020
73f84d6
review comments
aeschli Sep 8, 2020
c3018ad
Bump vscode-ripgrep for ARM
roblourens Sep 8, 2020
7ce6050
Merge pull request #106277 from microsoft/aeschli/adoptColorScheme
aeschli Sep 8, 2020
f63ceed
Revert more specific class names for editor tokens
mjbvz Sep 8, 2020
6485f44
remove emit selections.
rebornix Sep 8, 2020
1870a1c
Merge remote-tracking branch 'origin/master' into rebornix/nbdebt
rebornix Sep 8, 2020
ccc6fe6
merge conflict resolve.
rebornix Sep 8, 2020
f48b0f4
fix integration tests.
rebornix Sep 8, 2020
e969bc1
Disable errors in non-semantic supported files
mjbvz Sep 8, 2020
a6833ed
proper fix for #105202 (#106293)
jeanp413 Sep 8, 2020
1fbd173
Only enable 'open with' on files
mjbvz Sep 8, 2020
4c7071e
Add WebviewView.description
mjbvz Sep 8, 2020
17dcafe
Remove manual strikethroughs for deprecated properties in vscode.d.ts
mjbvz Sep 8, 2020
93a0c99
Merge pull request #106313 from microsoft/rebornix/nbdebt
rebornix Sep 8, 2020
f79540d
Add show method to webview view
mjbvz Sep 9, 2020
940bfbd
Skip failing test
mjbvz Sep 9, 2020
98ab62b
fix #106283
sandy081 Sep 9, 2020
bb27a30
enable test
sandy081 Sep 9, 2020
1d177e2
fix #106283
bpasero Sep 9, 2020
60f9684
Merge branch 'master' into ben/pinned-tabs-setting
bpasero Sep 9, 2020
32dc32d
pinnedTabSizing.standard => pinnedTabSizing.normal
bpasero Sep 9, 2020
6ca91db
Merge remote-tracking branch 'origin/master' into joao/linux-arm
joaomoreno Sep 9, 2020
799db29
install dot net core sdk
joaomoreno Sep 9, 2020
0a2801b
update distro
joaomoreno Sep 9, 2020
02fe227
tabs - align icon and text vertically centered in tab
bpasero Sep 9, 2020
c4b273b
update distro
joaomoreno Sep 9, 2020
079b191
distro
joaomoreno Sep 9, 2020
d2da7e9
fix https://github.com/microsoft/vscode/issues/106308
jrieken Sep 9, 2020
7792c61
Update gitignore decorations when .git/info/exclude file is edited (#…
vpukhanov Sep 9, 2020
e516bf3
updated searches
jrieken Sep 9, 2020
4e1109b
editor - rename context keys variables
bpasero Sep 9, 2020
b1b2e09
fix https://github.com/microsoft/vscode/issues/105999
jrieken Sep 9, 2020
1c546da
pinned tabs - prevent to close pinned tabs via Cmd+W (#100738)
bpasero Sep 9, 2020
0b77007
Reduce usage of `.innerHTML` (#106285)
alexdima Sep 9, 2020
a082671
fix uninstalling extension
sandy081 Sep 9, 2020
52a7a9e
remove unused import
sandy081 Sep 9, 2020
951dd14
add `replaceNotebookMetadata` (should become `replaceMetadata`) to No…
jrieken Sep 9, 2020
420aa32
add `replaceNotebookMetadata`, https://github.com/microsoft/vscode/is…
jrieken Sep 9, 2020
f0dd2d2
use textContent instead of innerHTML (for #106285)
aeschli Sep 9, 2020
dcef262
chore - move appyWorkspaceEdit from extHostTextEditors to (new) extHo…
jrieken Sep 9, 2020
6e35aa3
chore - extract extHostNotebookDocument for the NotebookDocument and …
jrieken Sep 9, 2020
82ac7ba
chore - extract ExtHostNotebookEditor into its own file
jrieken Sep 9, 2020
cfe2bb2
chore - remove ExtHostNotebookEditor#uri and use document.uri instead
jrieken Sep 9, 2020
eb92195
chore - :lipstick: member order: property, ctor, method
jrieken Sep 9, 2020
0bc0291
publish arm deb and rpm
joaomoreno Sep 9, 2020
8b993b8
trusted types
joaomoreno Sep 9, 2020
6518457
use async await
sandy081 Sep 9, 2020
f481704
distro
joaomoreno Sep 9, 2020
900e16a
update trusted types search
jrieken Sep 9, 2020
758f355
trusted types - use textContent for style elements, fyi @rebornix
jrieken Sep 9, 2020
6f82a39
Merge branch 'master' into terminal-numeric-font-weight-101467
Tyriar Sep 9, 2020
f4833ee
Merge pull request #106072 from IllusionMH/terminal-numeric-font-weig…
Tyriar Sep 9, 2020
65b4134
Merge pull request #95637 from luqmana/workspace-mimetype
Tyriar Sep 9, 2020
92a97ec
Merge remote-tracking branch 'origin/master' into pr/Abhijith-S-D/104090
Tyriar Sep 9, 2020
e05b06e
fix arch
joaomoreno Sep 9, 2020
d3b95c5
Fix compile after merge
Tyriar Sep 9, 2020
17a2ff4
Use instantiation service to create TerminalLinks
Tyriar Sep 9, 2020
3456e08
Consolidate colon trim logic
Tyriar Sep 9, 2020
67def03
Avoid slice when checking colon
Tyriar Sep 9, 2020
5fabfbf
Check length again
Tyriar Sep 9, 2020
49be31b
Merge pull request #104734 from brajkowski/issue-104612
Tyriar Sep 9, 2020
2565f7e
Merge branch 'master' into master
Tyriar Sep 9, 2020
41586fc
Merge pull request #105108 from DavidGoldman/master
Tyriar Sep 9, 2020
66e99a7
Move comment into helper function
Tyriar Sep 9, 2020
0fbda8e
Merge pull request #104090 from Abhijith-S-D/bugfix/101155
Tyriar Sep 9, 2020
9ff783b
Update extensions/git/src/commands.ts
joaomoreno Sep 9, 2020
bec65e8
Update extensions/git/src/commands.ts
joaomoreno Sep 9, 2020
d9d314e
Update extensions/git/src/commands.ts
joaomoreno Sep 9, 2020
f41efe5
Merge branch 'master' into pr/85074
joaomoreno Sep 9, 2020
c1e9502
Save prompt is shown while saving from settings split json editor (fi…
bpasero Sep 9, 2020
2a95424
Only allow configurePlugin against main TS Server
mjbvz Sep 9, 2020
c348165
Adding more explicit typings for promises
mjbvz Sep 9, 2020
7e0c1aa
Don't use async on abstract functions
mjbvz Sep 9, 2020
f3532c9
chore - use workingCopyService.isDirty instead notebook.isDirty
jrieken Sep 9, 2020
fecec73
Update Codicons
Sep 9, 2020
5cdf679
Add explicit undefined parameters / types
mjbvz Sep 9, 2020
e40d854
debt - IMainNotebookController#removeNotebookDocument
jrieken Sep 9, 2020
9753398
debt - invoke resolve notebook when opening a notebook in an editor, …
jrieken Sep 9, 2020
eb05b79
do not need isUntitled.
rebornix Sep 8, 2020
deaf9f2
:guard: polish nb tests.
rebornix Sep 8, 2020
eb7f042
remove selections from nb text model.
rebornix Sep 8, 2020
e491efb
replace changeCellLanguage to applyEdit
rebornix Sep 9, 2020
4e70e4a
fix #105916. expand metadata section if modified.
rebornix Sep 9, 2020
8bc3145
move dirty state to NotebookEditorModel.
rebornix Sep 9, 2020
ee5ee9e
chore, simply notebook text model event emitter
rebornix Sep 9, 2020
424a2bf
refs #106285
sbatten Sep 9, 2020
ebff341
Add subscribers action
Sep 9, 2020
d55efd8
Fix terminal ts 4.1 compile issues
Tyriar Sep 9, 2020
6821292
Fix ts 4.1 issues in terminal api tests
Tyriar Sep 9, 2020
a037570
Update Codicons: add 'graph-left'
Sep 9, 2020
69f2632
initialize notebook text model data only through ctor.
rebornix Sep 9, 2020
889fe17
:lipstick:
rebornix Sep 9, 2020
6cf52e3
Mark property readonly
mjbvz Sep 9, 2020
80b1a77
Enable webview commands for webview views
mjbvz Sep 9, 2020
cceaf14
#106358
Sep 9, 2020
7e62739
debug: bump js-debug-companion
connor4312 Sep 9, 2020
73a3c9d
re #105735.
rebornix Sep 9, 2020
03960a5
re #105735. no more udpateMetadata api.
rebornix Sep 9, 2020
8e5eed1
Fix #106303
roblourens Sep 10, 2020
3f8f022
Use destructuring to make code more clear
mjbvz Sep 9, 2020
a1e2114
Add isWritableFileSystem api
mjbvz Sep 10, 2020
cf38af8
Revert "Fix #106303"
mjbvz Sep 10, 2020
ec8016f
Cache webview view title across reloads
mjbvz Sep 10, 2020
3fb8967
fix some TS 4.1 errors (#106358)
bpasero Sep 10, 2020
76e7cbb
fix some TS 4.1 errors (#106358)
bpasero Sep 10, 2020
c3c8126
Merge branch 'master' into ben/pinned-tabs-setting
bpasero Sep 10, 2020
c591f8b
fix TS 4.1 compile errors, https://github.com/microsoft/vscode/issues…
jrieken Sep 10, 2020
1424f2b
pinned tabs - flip default to "shrink"
bpasero Sep 10, 2020
a443309
Merge pull request #106385 from microsoft/ben/pinned-tabs-setting
bpasero Sep 10, 2020
25081cd
fix ts errors
joaomoreno Sep 10, 2020
6173cf8
pinned tabs - closing pinned tab should open next non-pinned
bpasero Sep 10, 2020
82d953a
pinned tabs - add a tab.lastPinnedBorder color
bpasero Sep 10, 2020
663810e
Adds commands for --no-verify commit variants (#106335)
vpukhanov Sep 10, 2020
41794e5
trusted types
joaomoreno Sep 10, 2020
72f468f
more TS 4.1 fixes (#106358)
bpasero Sep 10, 2020
226c417
update trusted types search
jrieken Sep 10, 2020
26803ce
Fix TS 4.1 errors for tasks and remote explorer
alexr00 Sep 10, 2020
533ca9b
Adress #106358: Fix TS 4.1 errors in codebase
dbaeumer Sep 10, 2020
01f9355
debt - simplify metadata edit because we now have CellEditType.Docume…
jrieken Sep 10, 2020
44699b0
Fix Trusted Types violations (round #2) #106395
isidorn Sep 10, 2020
371f630
Merge pull request #106378 from mjbvz/add-isWritableFileSystem
jrieken Sep 10, 2020
9a2a941
debug: return result of a msg to debug adapter can be undefined
isidorn Sep 10, 2020
e38b9d0
add ExtHostFileSystemInfo which knows what schemes are reserved and w…
jrieken Sep 10, 2020
015c3af
fixes #106334
isidorn Sep 10, 2020
a5a54ad
web - fix bad credentials lookup
bpasero Sep 10, 2020
3271ccc
Correct path to code-workspace.xml
Tyriar Sep 10, 2020
c334da1
Multi git executable paths (#85954)
whizsid Sep 10, 2020
abb9c8d
Correct linux code-workspace path
Tyriar Sep 10, 2020
149f31e
fixes #104047
joaomoreno Sep 10, 2020
8c13421
Add defaultUriScheme to path service (#106400)
alexr00 Sep 10, 2020
3d6d718
:lipstick:
jrieken Sep 10, 2020
cc9415c
Fix #106303
roblourens Sep 10, 2020
01b1902
Avoid innerHTML (#106395)
chrmarti Sep 10, 2020
7651656
Avoid innerHTML (#106395)
chrmarti Sep 10, 2020
246aab4
debt - REMOTE_HOST_SCHEME => Schemas.vscodeRemote
bpasero Sep 10, 2020
e0d5fae
fixes #106355
isidorn Sep 10, 2020
e73d3a8
pathService - defaultUriScheme() => defaultUriScheme
bpasero Sep 10, 2020
e37e0ff
Adjust active terminal tab when active tab moves (#106413)
alexr00 Sep 10, 2020
b1b5b8a
debt - adopt defaultUriScheme also for userHome
bpasero Sep 10, 2020
6e02276
debt - adopt defaultUriScheme over hardcoded vscode-remote in toLocal…
bpasero Sep 10, 2020
7fdda46
some integration tests for notebook editing, https://github.com/micro…
jrieken Sep 10, 2020
4c67705
refs #106358
sbatten Sep 10, 2020
a9a7cf1
Bump yargs-parser in /extensions/markdown-language-features (#106373)
dependabot[bot] Sep 10, 2020
9d87cd6
Bump yargs-parser in /extensions/css-language-features/server
dependabot[bot] Sep 10, 2020
eba1cc8
Remove arrays.findIndex
mjbvz Sep 10, 2020
70a3975
Use textContnet for style element
mjbvz Sep 10, 2020
2e56d31
use textcontent in menu css
sbatten Sep 10, 2020
ad451c4
Fix one innerHTML usage #106395
roblourens Sep 10, 2020
a45fa6e
Use `@example` tags in vscode.d.ts (#106352)
mjbvz Sep 10, 2020
c59d5dd
- reload only local user configuration after initi
sandy081 Sep 10, 2020
b37c4b0
re #105735. batch apply edits.
rebornix Sep 10, 2020
f042627
notebook text model initialization does not increment version
rebornix Sep 10, 2020
2103630
private outputs slice and unknown change.
rebornix Sep 10, 2020
f88fca5
applyEdit supports begin/end selections.
rebornix Sep 10, 2020
ea02bca
replace insertCell with applyEdit.
rebornix Sep 10, 2020
f3c42d8
do not copy execution related metadata
rebornix Sep 10, 2020
5ae0dc0
:lipstick:
rebornix Sep 10, 2020
7daf6e1
fix build.
rebornix Sep 10, 2020
f731c6f
Document view.type contribution
mjbvz Sep 10, 2020
d82bb0e
Improve views contribution point
mjbvz Sep 10, 2020
310e5a9
Replace our arrays.find with stdlib find
mjbvz Sep 10, 2020
ee11170
Pin blob storage dep
Sep 10, 2020
58d9622
unit tests for batched edits.
rebornix Sep 10, 2020
4aefd43
remove spliceNotebook api from textmodel.
rebornix Sep 11, 2020
62b70e6
update exploration branch
deepak1556 Sep 11, 2020
2c1dd10
Fix some trusted type violations, #106395
Sep 11, 2020
40827f3
fix fonts in monaco menu
sbatten Sep 11, 2020
8684731
update distro
joaomoreno Sep 11, 2020
2e2d14c
some jsdoc for https://github.com/microsoft/vscode/issues/54938
jrieken Sep 11, 2020
37a11b4
try to fix build (linux)
bpasero Sep 11, 2020
8784732
electron - set spellcheck: false again for windows
bpasero Sep 11, 2020
55a7f0a
update search file, https://github.com/microsoft/vscode/issues/106395
jrieken Sep 11, 2020
2309414
Merge branch 'master' into dependabot/npm_and_yarn/extensions/css-lan…
aeschli Sep 11, 2020
7c20c3f
Merge pull request #106374 from microsoft/dependabot/npm_and_yarn/ext…
aeschli Sep 11, 2020
a46ba1f
:up: web playground
bpasero Sep 11, 2020
3994ae4
Trusted types - don't use innerHTML for rapid render, https://github.…
jrieken Sep 11, 2020
8e12a92
Remove Schemas.vscodeRemote from simple file dialog
alexr00 Sep 11, 2020
13aca0a
debt - remove some any casts from window
bpasero Sep 11, 2020
e75b1a6
Merge branch 'joao/linux-arm'
joaomoreno Sep 11, 2020
1f1ac9a
update distro
joaomoreno Sep 11, 2020
bea7a23
fix linux build
joaomoreno Sep 11, 2020
bc38b0a
argh
joaomoreno Sep 11, 2020
1fccb9e
proxy authentication does not work on 1.49 (#106434)
bpasero Sep 11, 2020
2920016
do not use hasClass and first
isidorn Sep 11, 2020
93c96b6
debug and explroer: do not use dom.addClass, dom.toggleClass
isidorn Sep 11, 2020
c2da750
do not use deprecated dom helper methods
isidorn Sep 11, 2020
133d95e
adopt new amd loader with support for TrustedScriptURL, add typings f…
jrieken Sep 11, 2020
b0a913b
explorer: Should maintain row focus after deleting a file
isidorn Sep 11, 2020
5c76fc5
Update Codicons: add 'magnet' icon
Sep 11, 2020
07ad5d6
Remove unused 'SettingSearch' issue type
Sep 11, 2020
59dcc5c
notebook document data loss.
rebornix Sep 11, 2020
c53524a
cell language should not be freezed.
rebornix Sep 11, 2020
352a390
Add preferred_username to the list of msft token claims (#106511)
olegoid Sep 11, 2020
122fc9a
debug: update js-debug
connor4312 Sep 11, 2020
402092d
fix #106430.
rebornix Sep 11, 2020
db01f71
hide outputs if it is transient.
rebornix Sep 11, 2020
2fb42c3
Add optional typing for webview state in WebviewPanelSerializer
mjbvz Sep 11, 2020
3e71592
Add comment to WebviewViewResolveContext
mjbvz Sep 11, 2020
8a6b38e
use optional chaining
mjbvz Sep 11, 2020
02e6fa2
Use `Set` instead of array
mjbvz Sep 11, 2020
cc899f1
Create webview.web.contribution
mjbvz Sep 11, 2020
cca20eb
Revert "API proposal for tree item icon color"
sbatten Sep 12, 2020
d3e19e4
Skip formatting when during format-on-save, the configured formatter …
jrieken Sep 14, 2020
e3380f2
don't use renderCodicons any more, https://github.com/microsoft/vscod…
jrieken Sep 14, 2020
ef4df1d
remove old renderCodicons-function, rename renderCodiconsAsElement to…
jrieken Sep 14, 2020
06377cf
NotebookEditorEdit-api changes, https://github.com/microsoft/vscode/i…
jrieken Sep 14, 2020
8427414
WorkspaceEdit-api changes, https://github.com/microsoft/vscode/issues…
jrieken Sep 14, 2020
b929102
adopt notebook integration tests, https://github.com/microsoft/vscode…
jrieken Sep 14, 2020
933bdbc
add NotebookCell#index, https://github.com/microsoft/vscode/issues/10…
jrieken Sep 14, 2020
90a2bed
fix delay issue for provideCodeLenses, https://github.com/microsoft/v…
jrieken Sep 14, 2020
68ff54f
rename RunOnceScheduler#timeout to delay
jrieken Sep 14, 2020
efc7cb3
use debian stretch images (#106656)
joaomoreno Sep 14, 2020
883da59
remove deprecated function calls
joaomoreno Sep 14, 2020
3761ee6
workaround, maybe fix for https://github.com/microsoft/vscode/issues/…
jrieken Sep 14, 2020
db78402
update search files
jrieken Sep 14, 2020
68410ab
debt - make class list utils functions so that @deprecated works for …
jrieken Sep 14, 2020
ed24319
fixes #106406
joaomoreno Sep 14, 2020
5a68333
notebook - when creating a notebook, check that no notebook with anot…
jrieken Sep 14, 2020
863acba
fix bad classList usage
joaomoreno Sep 14, 2020
a6ae00a
add regression test for https://github.com/microsoft/vscode/issues/10…
jrieken Sep 14, 2020
f69faf4
fixes #86180
joaomoreno Sep 14, 2020
b9aa43a
fixes #100172
joaomoreno Sep 14, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
121 changes: 121 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------

FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-12

ARG TARGET_DISPLAY=":1"

# VNC options
ARG MAX_VNC_RESOLUTION=1920x1080x16
ARG TARGET_VNC_RESOLUTION=1920x1080
ARG TARGET_VNC_DPI=72
ARG TARGET_VNC_PORT=5901
ARG VNC_PASSWORD="vscode"

# noVNC (VNC web client) options
ARG INSTALL_NOVNC="true"
ARG NOVNC_VERSION=1.1.0
ARG TARGET_NOVNC_PORT=6080
ARG WEBSOCKETIFY_VERSION=0.9.0

# Firefox is useful for testing things like browser launch events, but optional
ARG INSTALL_FIREFOX="false"

# Expected non-root username from base image
ARG USERNAME=node

# Core environment variables for X11, VNC, and fluxbox
ENV DBUS_SESSION_BUS_ADDRESS="autolaunch:" \
MAX_VNC_RESOLUTION="${MAX_VNC_RESOLUTION}" \
VNC_RESOLUTION="${TARGET_VNC_RESOLUTION}" \
VNC_DPI="${TARGET_VNC_DPI}" \
VNC_PORT="${TARGET_VNC_PORT}" \
NOVNC_PORT="${TARGET_NOVNC_PORT}" \
DISPLAY="${TARGET_DISPLAY}" \
LANG="en_US.UTF-8" \
LANGUAGE="en_US.UTF-8" \
VISUAL="nano" \
EDITOR="nano"

# Configure apt and install packages
RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
#
# Install the Cascadia Code fonts - https://github.com/microsoft/cascadia-code
&& curl -sSL https://github.com/microsoft/cascadia-code/releases/download/v2004.30/CascadiaCode_2004.30.zip -o /tmp/cascadia-fonts.zip \
&& unzip /tmp/cascadia-fonts.zip -d /tmp/cascadia-fonts \
&& mkdir -p /usr/share/fonts/truetype/cascadia \
&& mv /tmp/cascadia-fonts/ttf/* /usr/share/fonts/truetype/cascadia/ \
&& rm -rf /tmp/cascadia-fonts.zip /tmp/cascadia-fonts \
#
# Install X11, fluxbox and VS Code dependencies
&& apt-get -y install --no-install-recommends \
xvfb \
x11vnc \
fluxbox \
dbus-x11 \
x11-utils \
x11-xserver-utils \
xdg-utils \
fbautostart \
xterm \
eterm \
gnome-terminal \
gnome-keyring \
seahorse \
nautilus \
libx11-dev \
libxkbfile-dev \
libsecret-1-dev \
libnotify4 \
libnss3 \
libxss1 \
libasound2 \
xfonts-base \
xfonts-terminus \
fonts-noto \
fonts-wqy-microhei \
fonts-droid-fallback \
vim-tiny \
nano \
#
# [Optional] Install noVNC
&& if [ "${INSTALL_NOVNC}" = "true" ]; then \
mkdir -p /usr/local/novnc \
&& curl -sSL https://github.com/novnc/noVNC/archive/v${NOVNC_VERSION}.zip -o /tmp/novnc-install.zip \
&& unzip /tmp/novnc-install.zip -d /usr/local/novnc \
&& cp /usr/local/novnc/noVNC-${NOVNC_VERSION}/vnc_lite.html /usr/local/novnc/noVNC-${NOVNC_VERSION}/index.html \
&& rm /tmp/novnc-install.zip \
&& curl -sSL https://github.com/novnc/websockify/archive/v${WEBSOCKETIFY_VERSION}.zip -o /tmp/websockify-install.zip \
&& unzip /tmp/websockify-install.zip -d /usr/local/novnc \
&& apt-get -y install --no-install-recommends python-numpy \
&& ln -s /usr/local/novnc/websockify-${WEBSOCKETIFY_VERSION} /usr/local/novnc/noVNC-${NOVNC_VERSION}/utils/websockify \
&& rm /tmp/websockify-install.zip; \
fi \
#
# [Optional] Install Firefox
&& if [ "${INSTALL_FIREFOX}" = "true" ]; then \
apt-get -y install --no-install-recommends firefox-esr; \
fi \
#
# Clean up
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*

COPY bin/init-dev-container.sh /usr/local/share/
COPY bin/set-resolution /usr/local/bin/
COPY fluxbox/* /root/.fluxbox/
COPY fluxbox/* /home/${USERNAME}/.fluxbox/

# Update privs, owners of config files
RUN mkdir -p /var/run/dbus /root/.vnc /home/${USERNAME}/.vnc \
&& touch /root/.Xmodmap /home/${USERNAME}/.Xmodmap \
&& echo "${VNC_PASSWORD}" | tee /root/.vnc/passwd > /home/${USERNAME}/.vnc/passwd \
&& chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.Xmodmap /home/${USERNAME}/.fluxbox /home/${USERNAME}/.vnc \
&& chmod +x /usr/local/share/init-dev-container.sh /usr/local/bin/set-resolution

ENTRYPOINT ["/usr/local/share/init-dev-container.sh"]
CMD ["sleep", "infinity"]
82 changes: 82 additions & 0 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Code - OSS Development Container

This repository includes configuration for a development container for working with Code - OSS in an isolated local container or using [Visual Studio Codespaces](https://aka.ms/vso).

> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` with a web client at `6080`. For better performance, we recommend using a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Applications like the macOS Screen Sharing app will not perform as well. [Chicken](https://sourceforge.net/projects/chicken/) is a good macOS alternative.

## Quick start - local

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 6 GB of RAM (8 GB recommended)** to run full build. If you on macOS, or using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item, 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 that 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> and select **Remote - Containers: Open Repository in Container...**.

> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or using the Hyper-V engine on Windows. We recommend the "open repository" 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 - Codespaces

>Note that the Codespaces browser-based editor cannot currently access the desktop environment in this container (due to a [missing feature](https://github.com/MicrosoftDocs/vsonline/issues/117)). We recommend using Visual Studio Code from the desktop to connect instead in the near term.

1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Visual Studio Codespaces](https://aka.ms/vscs-ext-vscode) extension.

![Image of VS Codespaces extension](https://microsoft.github.io/vscode-remote-release/images/codespaces-extn.png)

> Note that the Visual Studio Codespaces extension requires the Visual Studio Code distribution of Code - OSS.

2. Sign in by pressing <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and selecting **Codespaces: Sign In**. You may also need to use the **Codespaces: Create Plan** if you do not have a plan. See the [Codespaces docs](https://aka.ms/vso-docs/vscode) for details.

3. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Codespaces: Create New Codespace**.

4. Use default settings (which should include **Standard** 4 core, 8 GB RAM Codespace), select a plan, and then enter the repository URL `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box when prompted.

5. 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.

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

## 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, 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 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.

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 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!
91 changes: 91 additions & 0 deletions .devcontainer/bin/init-dev-container.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#!/bin/bash

NONROOT_USER=node
LOG=/tmp/container-init.log

# Execute the command it not already running
startInBackgroundIfNotRunning()
{
log "Starting $1."
echo -e "\n** $(date) **" | sudoIf tee -a /tmp/$1.log > /dev/null
if ! pidof $1 > /dev/null; then
keepRunningInBackground "$@"
while ! pidof $1 > /dev/null; do
sleep 1
done
log "$1 started."
else
echo "$1 is already running." | sudoIf tee -a /tmp/$1.log > /dev/null
log "$1 is already running."
fi
}

# Keep command running in background
keepRunningInBackground()
{
($2 sh -c "while :; do echo [\$(date)] Process started.; $3; echo [\$(date)] Process exited!; sleep 5; done 2>&1" | sudoIf tee -a /tmp/$1.log > /dev/null & echo "$!" | sudoIf tee /tmp/$1.pid > /dev/null)
}

# Use sudo to run as root when required
sudoIf()
{
if [ "$(id -u)" -ne 0 ]; then
sudo "$@"
else
"$@"
fi
}

# Use sudo to run as non-root user if not already running
sudoUserIf()
{
if [ "$(id -u)" -eq 0 ]; then
sudo -u ${NONROOT_USER} "$@"
else
"$@"
fi
}

# Log messages
log()
{
echo -e "[$(date)] $@" | sudoIf tee -a $LOG > /dev/null
}

log "** SCRIPT START **"

# Start dbus.
log 'Running "/etc/init.d/dbus start".'
if [ -f "/var/run/dbus/pid" ] && ! pidof dbus-daemon > /dev/null; then
sudoIf rm -f /var/run/dbus/pid
fi
sudoIf /etc/init.d/dbus start 2>&1 | sudoIf tee -a /tmp/dbus-daemon-system.log > /dev/null
while ! pidof dbus-daemon > /dev/null; do
sleep 1
done

# Set up Xvfb.
startInBackgroundIfNotRunning "Xvfb" sudoIf "Xvfb ${DISPLAY:-:1} +extension RANDR -screen 0 ${MAX_VNC_RESOLUTION:-1920x1080x16}"

# Start fluxbox as a light weight window manager.
startInBackgroundIfNotRunning "fluxbox" sudoUserIf "dbus-launch startfluxbox"

# Start x11vnc
startInBackgroundIfNotRunning "x11vnc" sudoIf "x11vnc -display ${DISPLAY:-:1} -rfbport ${VNC_PORT:-5901} -localhost -no6 -xkb -shared -forever -passwdfile $HOME/.vnc/passwd"

# Set resolution
/usr/local/bin/set-resolution ${VNC_RESOLUTION:-1280x720} ${VNC_DPI:-72}


# Spin up noVNC if installed and not runnning.
if [ -d "/usr/local/novnc" ] && [ "$(ps -ef | grep /usr/local/novnc/noVNC*/utils/launch.sh | grep -v grep)" = "" ]; then
keepRunningInBackground "noVNC" sudoIf "/usr/local/novnc/noVNC*/utils/launch.sh --listen ${NOVNC_PORT:-6080} --vnc localhost:${VNC_PORT:-5901}"
log "noVNC started."
else
log "noVNC is already running or not installed."
fi

# Run whatever was passed in
log "Executing \"$@\"."
"$@"
log "** SCRIPT EXIT **"
25 changes: 25 additions & 0 deletions .devcontainer/bin/set-resolution
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash
RESOLUTION=${1:-${VNC_RESOLUTION:-1920x1080}}
DPI=${2:-${VNC_DPI:-72}}
if [ -z "$1" ]; then
echo -e "**Current Settings **\n"
xrandr
echo -n -e "\nEnter new resolution (WIDTHxHEIGHT, blank for ${RESOLUTION}, Ctrl+C to abort).\n> "
read NEW_RES
if [ "${NEW_RES}" != "" ]; then
RESOLUTION=${NEW_RES}
fi
if [ -z "$2" ]; then
echo -n -e "\nEnter new DPI (blank for ${DPI}, Ctrl+C to abort).\n> "
read NEW_DPI
if [ "${NEW_DPI}" != "" ]; then
DPI=${NEW_DPI}
fi
fi
fi

xrandr --fb ${RESOLUTION} --dpi ${DPI} > /dev/null 2>&1

echo -e "\n**New Settings **\n"
xrandr
echo
45 changes: 45 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"name": "Code - OSS",
"build": {
"dockerfile": "Dockerfile",
"args": {
"MAX_VNC_RESOLUTION": "1920x1080x16",
"TARGET_VNC_RESOLUTION": "1280x768",
"TARGET_VNC_PORT": "5901",
"TARGET_NOVNC_PORT": "6080",
"VNC_PASSWORD": "vscode",
"INSTALL_FIREFOX": "true"
}
},
"overrideCommand": false,
"runArgs": [
"--init",
// seccomp=unconfined is required for Chrome sandboxing
"--security-opt", "seccomp=unconfined"
],

"settings": {
// zsh is also available
"terminal.integrated.shell.linux": "/bin/bash",
"resmon.show.battery": false,
"resmon.show.cpufreq": false,
"remote.extensionKind": {
"ms-vscode.js-debug-nightly": "workspace",
"msjsdiag.debugger-for-chrome": "workspace"
},
"debug.chrome.useV3": true
},

// noVNC, VNC ports
"forwardPorts": [6080, 5901],

"extensions": [
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"msjsdiag.debugger-for-chrome",
"mutantdino.resourcemonitor",
"GitHub.vscode-pull-request-github"
],

"remoteUser": "node"
}
9 changes: 9 additions & 0 deletions .devcontainer/fluxbox/apps
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[app] (name=code-oss-dev)
[Position] (CENTER) {0 0}
[Maximized] {yes}
[Dimensions] {100% 100%}
[end]
[transient] (role=GtkFileChooserDialog)
[Position] (CENTER) {0 0}
[Dimensions] {70% 70%}
[end]
9 changes: 9 additions & 0 deletions .devcontainer/fluxbox/init
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
session.menuFile: ~/.fluxbox/menu
session.keyFile: ~/.fluxbox/keys
session.styleFile: /usr/share/fluxbox/styles//Squared_for_Debian
session.configVersion: 13
session.screen0.workspaces: 1
session.screen0.workspacewarping: false
session.screen0.toolbar.widthPercent: 100
session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S
session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray
Loading