Skip to content

Commit

Permalink
Merge VS Code 1.21 source code (microsoft#1067)
Browse files Browse the repository at this point in the history
* Initial VS Code 1.21 file copy with patches

* A few more merges

* Post npm install

* Fix batch of build breaks

* Fix more build breaks

* Fix more build errors

* Fix more build breaks

* Runtime fixes 1

* Get connection dialog working with some todos

* Fix a few packaging issues

* Copy several node_modules to package build to fix loader issues

* Fix breaks from master

* A few more fixes

* Make tests pass

* First pass of license header updates

* Second pass of license header updates

* Fix restore dialog issues

* Remove add additional themes menu items

* fix select box issues where the list doesn't show up

* formatting

* Fix editor dispose issue

* Copy over node modules to correct location on all platforms
  • Loading branch information
kburtram authored Apr 4, 2018
1 parent 5fba3e3 commit dafb780
Show file tree
Hide file tree
Showing 9,412 changed files with 140,996 additions and 98,554 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
15 changes: 12 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ cache:
notifications:
email: false
webhooks:
- http://vscode-probot.westus.cloudapp.azure.com:3450/travis/notifications
- http://vscode-test-probot.westus.cloudapp.azure.com:3450/travis/notifications
- https://vscode-probot.westus.cloudapp.azure.com:7890/travis/notifications
- https://vscode-test-probot.westus.cloudapp.azure.com:7890/travis/notifications

addons:
apt:
Expand All @@ -31,6 +31,7 @@ addons:
- libsecret-1-dev

before_install:
- export GITHUB_TOKEN=$PUBLIC_GITHUB_TOKEN
- git submodule update --init --recursive
- git clone --depth 1 https://github.com/creationix/nvm.git ./.nvm
- source ./.nvm/nvm.sh
Expand All @@ -52,9 +53,17 @@ install:

script:
- node_modules/.bin/gulp electron --silent
- node_modules/.bin/tsc -p ./src/tsconfig.monaco.json --noEmit
- node_modules/.bin/gulp compile --silent --max_old_space_size=4096
- node_modules/.bin/gulp optimize-vscode --silent --max_old_space_size=4096
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./scripts/test.sh --coverage --reporter dot; else ./scripts/test.sh --reporter dot; fi
- ./scripts/test-integration.sh

after_success:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then node_modules/.bin/coveralls < .build/coverage/lcov.info; fi

matrix:
include:
- os: linux
env: label=hygiene
script: node_modules/.bin/gulp hygiene
after_success: skip
6 changes: 4 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
{
"version": "0.1.0",
"configurations": [

{
"type": "node",
"request": "launch",
"name": "Gulp Build",
"program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js",
"stopOnEntry": true,
"args": [
"watch-extension:json-client"
"hygiene"
],
"cwd": "${workspaceFolder}"
},
Expand Down Expand Up @@ -87,6 +86,9 @@
"runtimeArgs": [
"--inspect=5875"
],
"skipFiles": [
"**/winjs*.js"
],
"webRoot": "${workspaceFolder}"
},
{
Expand Down
8 changes: 5 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
"when": "$(basename).ts"
}
},
"files.associations": {
"OSSREADME.json": "jsonc"
},
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
Expand All @@ -35,6 +38,5 @@
}
}
],
"typescript.tsdk": "node_modules/typescript/lib",
"git.ignoreLimitWarning": true
}
"typescript.tsdk": "node_modules/typescript/lib"
}
1 change: 1 addition & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ install:
build_script:
- yarn
- .\node_modules\.bin\gulp electron
- .\node_modules\.bin\tsc -p .\src\tsconfig.monaco.json --noEmit
- npm run compile

test_script:
Expand Down
12 changes: 12 additions & 0 deletions build/builtInExtensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[
{
"name": "ms-vscode.node-debug",
"version": "1.21.8",
"repo": "https://github.com/Microsoft/vscode-node-debug"
},
{
"name": "ms-vscode.node-debug2",
"version": "1.21.2",
"repo": "https://github.com/Microsoft/vscode-node-debug2"
}
]
20 changes: 20 additions & 0 deletions build/builtin/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"env": {
"node": true,
"es6": true,
"browser": true
},
"rules": {
"no-console": 0,
"no-cond-assign": 0,
"no-unused-vars": 1,
"no-extra-semi": "warn",
"semi": "warn"
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
}
}
126 changes: 126 additions & 0 deletions build/builtin/browser-main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

const fs = require('fs');
const path = require('path');
const os = require('os');
// @ts-ignore review
const { remote } = require('electron');
const dialog = remote.dialog;

const builtInExtensionsPath = path.join(__dirname, '..', 'builtInExtensions.json');
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');

function readJson(filePath) {
return JSON.parse(fs.readFileSync(filePath, { encoding: 'utf8' }));
}

function writeJson(filePath, obj) {
fs.writeFileSync(filePath, JSON.stringify(obj, null, 2));
}

function renderOption(form, id, title, value, checked) {
const input = document.createElement('input');
input.type = 'radio';
input.id = id;
input.name = 'choice';
input.value = value;
input.checked = !!checked;
form.appendChild(input);

const label = document.createElement('label');
label.setAttribute('for', id);
label.textContent = title;
form.appendChild(label);

return input;
}

function render(el, state) {
function setState(state) {
try {
writeJson(controlFilePath, state.control);
} catch (err) {
console.error(err);
}

el.innerHTML = '';
render(el, state);
}

const ul = document.createElement('ul');
const { builtin, control } = state;

for (const ext of builtin) {
const controlState = control[ext.name] || 'marketplace';

const li = document.createElement('li');
ul.appendChild(li);

const name = document.createElement('code');
name.textContent = ext.name;
li.appendChild(name);

const form = document.createElement('form');
li.appendChild(form);

const marketplaceInput = renderOption(form, `marketplace-${ext.name}`, 'Marketplace', 'marketplace', controlState === 'marketplace');
marketplaceInput.onchange = function () {
control[ext.name] = 'marketplace';
setState({ builtin, control });
};

const disabledInput = renderOption(form, `disabled-${ext.name}`, 'Disabled', 'disabled', controlState === 'disabled');
disabledInput.onchange = function () {
control[ext.name] = 'disabled';
setState({ builtin, control });
};

let local = undefined;

if (controlState !== 'marketplace' && controlState !== 'disabled') {
local = controlState;
}

const localInput = renderOption(form, `local-${ext.name}`, 'Local', 'local', !!local);
localInput.onchange = function () {
const result = dialog.showOpenDialog(remote.getCurrentWindow(), {
title: 'Choose Folder',
properties: ['openDirectory']
});

if (result && result.length >= 1) {
control[ext.name] = result[0];
}

setState({ builtin, control });
};

if (local) {
const localSpan = document.createElement('code');
localSpan.className = 'local';
localSpan.textContent = local;
form.appendChild(localSpan);
}
}

el.appendChild(ul);
}

function main() {
const el = document.getElementById('extensions');
const builtin = readJson(builtInExtensionsPath);
let control;

try {
control = readJson(controlFilePath);
} catch (err) {
control = {};
}

render(el, { builtin, control });
}

window.onload = main;
46 changes: 46 additions & 0 deletions build/builtin/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Manage Built-in Extensions</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="browser-main.js"></script>
<style>
body {
font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
font-size: 10pt;
}

code {
font-family: 'Menlo', 'Courier New', 'Courier', monospace;
}

ul {
padding-left: 1em;
}

li {
list-style: none;
padding: 0.3em 0;
}

label {
margin-right: 1em;
}

form {
padding: 0.3em 0 0.3em 0.3em;
}
</style>
</head>

<body>
<h1>Built-in Extensions</h1>
<div id="extensions"></div>
</body>

</html>
20 changes: 20 additions & 0 deletions build/builtin/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

const { app, BrowserWindow } = require('electron');
const url = require('url');
const path = require('path');

let window = null;

app.once('ready', () => {
window = new BrowserWindow({ width: 800, height: 600 });
window.setMenuBarVisibility(false);
window.loadURL(url.format({ pathname: path.join(__dirname, 'index.html'), protocol: 'file:', slashes: true }));
// window.webContents.openDevTools();
window.once('closed', () => window = null);
});

app.on('window-all-closed', () => app.quit());
5 changes: 5 additions & 0 deletions build/builtin/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "builtin",
"version": "0.1.0",
"main": "main.js"
}
Loading

0 comments on commit dafb780

Please sign in to comment.