mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 13:00:58 +00:00
Merge branch 'master' into ben/electron-sandbox
This commit is contained in:
commit
d637255b17
2
.github/workflows/author-verified.yml
vendored
2
.github/workflows/author-verified.yml
vendored
|
@ -16,7 +16,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
ref: v16
|
||||
ref: v17
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'author-verification-requested')
|
||||
|
|
2
.github/workflows/classifier-apply.yml
vendored
2
.github/workflows/classifier-apply.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
ref: v16
|
||||
ref: v17
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
2
.github/workflows/commands.yml
vendored
2
.github/workflows/commands.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
|||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
path: ./actions
|
||||
ref: v16
|
||||
ref: v17
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Run Commands
|
||||
|
|
2
.github/workflows/english-please.yml
vendored
2
.github/workflows/english-please.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
ref: v16
|
||||
ref: v17
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
if: contains(github.event.issue.labels.*.name, '*english-please')
|
||||
|
|
2
.github/workflows/feature-request.yml
vendored
2
.github/workflows/feature-request.yml
vendored
|
@ -17,7 +17,7 @@ jobs:
|
|||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
path: ./actions
|
||||
ref: v16
|
||||
ref: v17
|
||||
- name: Install Actions
|
||||
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'feature-request')
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
2
.github/workflows/locker.yml
vendored
2
.github/workflows/locker.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
|||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
path: ./actions
|
||||
ref: v16
|
||||
ref: v17
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Run Locker
|
||||
|
|
2
.github/workflows/needs-more-info-closer.yml
vendored
2
.github/workflows/needs-more-info-closer.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
|||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
path: ./actions
|
||||
ref: v16
|
||||
ref: v17
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Run Needs More Info Closer
|
||||
|
|
2
.github/workflows/on-label.yml
vendored
2
.github/workflows/on-label.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
ref: v16
|
||||
ref: v17
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
2
.github/workflows/on-open.yml
vendored
2
.github/workflows/on-open.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
ref: v16
|
||||
ref: v17
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
with:
|
||||
repository: 'microsoft/vscode-github-triage-actions'
|
||||
path: ./actions
|
||||
ref: v16
|
||||
ref: v17
|
||||
- name: Install Actions
|
||||
if: contains(github.event.issue.labels.*.name, 'testplan-item') || contains(github.event.issue.labels.*.name, 'invalid-testplan-item')
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
2
.yarnrc
2
.yarnrc
|
@ -1,3 +1,3 @@
|
|||
disturl "https://atom.io/download/electron"
|
||||
target "8.3.0"
|
||||
target "7.2.4"
|
||||
runtime "electron"
|
||||
|
|
|
@ -10,11 +10,11 @@ const path = require('path');
|
|||
let window = null;
|
||||
|
||||
app.once('ready', () => {
|
||||
window = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, webviewTag: true, enableWebSQL: false } });
|
||||
window = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, webviewTag: true } });
|
||||
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());
|
||||
app.on('window-all-closed', () => app.quit());
|
|
@ -6,7 +6,7 @@
|
|||
"git": {
|
||||
"name": "chromium",
|
||||
"repositoryUrl": "https://chromium.googlesource.com/chromium/src",
|
||||
"commitHash": "052d3b44972e6d94ef40054d46c150b7cdd7a5d8"
|
||||
"commitHash": "e4745133a1d3745f066e068b8033c6a269b59caf"
|
||||
}
|
||||
},
|
||||
"licenseDetail": [
|
||||
|
@ -40,7 +40,7 @@
|
|||
"SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
],
|
||||
"isOnlyProductionDependency": true,
|
||||
"version": "80.0.3987.165"
|
||||
"version": "78.0.3904.130"
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
|
@ -48,11 +48,11 @@
|
|||
"git": {
|
||||
"name": "nodejs",
|
||||
"repositoryUrl": "https://github.com/nodejs/node",
|
||||
"commitHash": "42cce5a9d0fd905bf4ad7a2528c36572dfb8b5ad"
|
||||
"commitHash": "787378879acfb212ed4ff824bf9f767a24a5cb43a"
|
||||
}
|
||||
},
|
||||
"isOnlyProductionDependency": true,
|
||||
"version": "12.13.0"
|
||||
"version": "12.8.1"
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
|
@ -60,12 +60,12 @@
|
|||
"git": {
|
||||
"name": "electron",
|
||||
"repositoryUrl": "https://github.com/electron/electron",
|
||||
"commitHash": "426d45cd8569fb7731f213159336cea019829ec5"
|
||||
"commitHash": "0552e0d5de46ffa3b481d741f1db5c779e201565"
|
||||
}
|
||||
},
|
||||
"isOnlyProductionDependency": true,
|
||||
"license": "MIT",
|
||||
"version": "8.3.0"
|
||||
"version": "7.2.4"
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
|
|
|
@ -488,7 +488,7 @@
|
|||
"t": "source.batchfile constant.character.escape.batchfile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -510,7 +510,7 @@
|
|||
"t": "source.batchfile constant.character.escape.batchfile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -1555,7 +1555,7 @@
|
|||
"t": "source.coffee string.regexp.multiline.coffee keyword.control.anchor.regexp",
|
||||
"r": {
|
||||
"dark_plus": "keyword.control.anchor.regexp: #DCDCAA",
|
||||
"light_plus": "keyword.control.anchor.regexp: #FF0000",
|
||||
"light_plus": "keyword.control.anchor.regexp: #EE0000",
|
||||
"dark_vs": "keyword.control: #569CD6",
|
||||
"light_vs": "keyword.control: #0000FF",
|
||||
"hc_black": "keyword.control: #C586C0"
|
||||
|
@ -1605,4 +1605,4 @@
|
|||
"hc_black": "string.regexp: #D16969"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
|
@ -191,7 +191,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -257,7 +257,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -389,7 +389,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -433,7 +433,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -532,7 +532,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -587,7 +587,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -719,7 +719,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -763,7 +763,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -862,7 +862,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -906,7 +906,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1027,7 +1027,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1071,7 +1071,7 @@
|
|||
"t": "source.cpp meta.preprocessor.macro.cpp constant.character.escape.line-continuation.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "meta.preprocessor: #569CD6",
|
||||
"light_vs": "meta.preprocessor: #0000FF",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1187,4 +1187,4 @@
|
|||
"hc_black": "meta.preprocessor: #569CD6"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
|
@ -2314,7 +2314,7 @@
|
|||
"t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.character.escape.cpp",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -2430,4 +2430,4 @@
|
|||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
|
@ -26,6 +26,7 @@
|
|||
".webmanifest",
|
||||
".js.map",
|
||||
".css.map",
|
||||
".ts.map",
|
||||
".har",
|
||||
".jslintrc",
|
||||
".jsonld"
|
||||
|
|
|
@ -389,7 +389,7 @@
|
|||
"t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json constant.character.escape.json",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1165,4 +1165,4 @@
|
|||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
|
@ -136,7 +136,7 @@
|
|||
"t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -279,7 +279,7 @@
|
|||
"t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -323,7 +323,7 @@
|
|||
"t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile comment.line.number-sign.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "comment: #6A9955",
|
||||
"light_vs": "comment: #008000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -378,7 +378,7 @@
|
|||
"t": "source.makefile comment.line.number-sign.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "comment: #6A9955",
|
||||
"light_vs": "comment: #008000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -554,7 +554,7 @@
|
|||
"t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -884,7 +884,7 @@
|
|||
"t": "source.makefile meta.scope.recipe.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -3029,7 +3029,7 @@
|
|||
"t": "source.makefile constant.character.escape.continuation.makefile",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -1302,7 +1302,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1324,7 +1324,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1346,7 +1346,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1775,7 +1775,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -389,7 +389,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -411,7 +411,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -433,7 +433,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -455,7 +455,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -477,7 +477,7 @@
|
|||
"t": "source.perl string.regexp.find.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -675,7 +675,7 @@
|
|||
"t": "source.perl string.quoted.double.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -950,7 +950,7 @@
|
|||
"t": "source.perl string.quoted.double.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -1445,7 +1445,7 @@
|
|||
"t": "source.perl string.quoted.double.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -2281,7 +2281,7 @@
|
|||
"t": "source.perl string.quoted.double.perl constant.character.escape.perl",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -279,7 +279,7 @@
|
|||
"t": "text.html.php meta.embedded.block.html source.js meta.embedded.block.php source.php string.quoted.single.php constant.character.escape.php",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -378,7 +378,7 @@
|
|||
"t": "text.html.php meta.embedded.block.html source.js meta.embedded.block.php source.php string.quoted.single.php constant.character.escape.php",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -565,7 +565,7 @@
|
|||
"t": "source.python string.quoted.single.python constant.character.escape.python",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -2501,7 +2501,7 @@
|
|||
"t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby constant.character.escape.ruby",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -2523,7 +2523,7 @@
|
|||
"t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby constant.character.escape.ruby",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -2545,7 +2545,7 @@
|
|||
"t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby constant.character.escape.ruby",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -2578,7 +2578,7 @@
|
|||
"t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby meta.group.regexp.ruby constant.character.escape.ruby",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string.regexp: #D16969",
|
||||
"light_vs": "string.regexp: #811F3F",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
|
|
@ -20761,7 +20761,7 @@
|
|||
"t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss constant.character.escape.scss",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -20882,7 +20882,7 @@
|
|||
"t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss constant.character.escape.scss",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -20959,7 +20959,7 @@
|
|||
"t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss constant.character.escape.scss",
|
||||
"r": {
|
||||
"dark_plus": "constant.character.escape: #D7BA7D",
|
||||
"light_plus": "constant.character.escape: #FF0000",
|
||||
"light_plus": "constant.character.escape: #EE0000",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "constant.character: #569CD6"
|
||||
|
@ -21020,4 +21020,4 @@
|
|||
"hc_black": "comment: #7CA668"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
|
@ -169,7 +169,7 @@
|
|||
"keyword.control.anchor.regexp"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#ff0000"
|
||||
"foreground": "#EE0000"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +181,7 @@
|
|||
{
|
||||
"scope": "constant.character.escape",
|
||||
"settings": {
|
||||
"foreground": "#ff0000"
|
||||
"foreground": "#EE0000"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -42,7 +42,23 @@
|
|||
"pickerGroup.foreground": "#b0b0b0",
|
||||
"terminal.ansiWhite": "#ffffff",
|
||||
"inputOption.activeBorder": "#3655b5",
|
||||
"focusBorder": "#3655b5"
|
||||
"focusBorder": "#3655b5",
|
||||
"terminal.ansiBlack": "#1e1e1e",
|
||||
"terminal.ansiRed": "#C4265E", // the bright color with ~75% transparent on the background
|
||||
"terminal.ansiGreen": "#86B42B",
|
||||
"terminal.ansiYellow": "#B3B42B",
|
||||
"terminal.ansiBlue": "#6A7EC8",
|
||||
"terminal.ansiMagenta": "#8C6BC8",
|
||||
"terminal.ansiCyan": "#56ADBC",
|
||||
"terminal.ansiWhite": "#e3e3dd",
|
||||
"terminal.ansiBrightBlack": "#666666",
|
||||
"terminal.ansiBrightRed": "#f92672",
|
||||
"terminal.ansiBrightGreen": "#A6E22E",
|
||||
"terminal.ansiBrightYellow": "#e2e22e", // hue shifted #A6E22E
|
||||
"terminal.ansiBrightBlue": "#819aff", // hue shifted #AE81FF
|
||||
"terminal.ansiBrightMagenta": "#AE81FF",
|
||||
"terminal.ansiBrightCyan": "#66D9EF",
|
||||
"terminal.ansiBrightWhite": "#f8f8f2"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"git": {
|
||||
"name": "seti-ui",
|
||||
"repositoryUrl": "https://github.com/jesseweed/seti-ui",
|
||||
"commitHash": "8f22764c37feb7f706465f5186132111a2401b6b"
|
||||
"commitHash": "f3b2775662b0075aab56e5f0c03269f21f3f0f30"
|
||||
}
|
||||
},
|
||||
"version": "0.1.0"
|
||||
|
|
Binary file not shown.
|
@ -1030,12 +1030,6 @@
|
|||
"fontCharacter": "\\E074",
|
||||
"fontColor": "#cc3e44"
|
||||
},
|
||||
"_rmd_light": {
|
||||
"fontColor": "#498ba7"
|
||||
},
|
||||
"_rmd": {
|
||||
"fontColor": "#519aba"
|
||||
},
|
||||
"_rollup_light": {
|
||||
"fontCharacter": "\\E075",
|
||||
"fontColor": "#b8383d"
|
||||
|
@ -1483,7 +1477,7 @@
|
|||
"test.tsx": "_react_2",
|
||||
"re": "_reasonml",
|
||||
"r": "_R",
|
||||
"rmd": "_rmd",
|
||||
"rmd": "_R",
|
||||
"erb": "_html_erb",
|
||||
"erb.html": "_html_erb",
|
||||
"html.erb": "_html_erb",
|
||||
|
@ -1678,7 +1672,7 @@
|
|||
"sql": "_db",
|
||||
"swift": "_swift",
|
||||
"typescript": "_typescript",
|
||||
"typescriptreact": "_react",
|
||||
"typescriptreact": "_typescript",
|
||||
"xml": "_xml",
|
||||
"yaml": "_yml",
|
||||
"argdown": "_argdown",
|
||||
|
@ -1811,7 +1805,7 @@
|
|||
"test.tsx": "_react_2_light",
|
||||
"re": "_reasonml_light",
|
||||
"r": "_R_light",
|
||||
"rmd": "_rmd_light",
|
||||
"rmd": "_R_light",
|
||||
"erb": "_html_erb_light",
|
||||
"erb.html": "_html_erb_light",
|
||||
"html.erb": "_html_erb_light",
|
||||
|
@ -1949,7 +1943,7 @@
|
|||
"sql": "_db_light",
|
||||
"swift": "_swift_light",
|
||||
"typescript": "_typescript_light",
|
||||
"typescriptreact": "_react_light",
|
||||
"typescriptreact": "_typescript_light",
|
||||
"xml": "_xml_light",
|
||||
"yaml": "_yml_light",
|
||||
"argdown": "_argdown_light",
|
||||
|
@ -2030,5 +2024,5 @@
|
|||
"npm-debug.log": "_npm_ignored_light"
|
||||
}
|
||||
},
|
||||
"version": "https://github.com/jesseweed/seti-ui/commit/8f22764c37feb7f706465f5186132111a2401b6b"
|
||||
"version": "https://github.com/jesseweed/seti-ui/commit/f3b2775662b0075aab56e5f0c03269f21f3f0f30"
|
||||
}
|
|
@ -110,9 +110,10 @@ export class TypeScriptServerSpawner {
|
|||
|
||||
private getForkOptions(kind: ServerKind, configuration: TypeScriptServiceConfiguration) {
|
||||
const debugPort = TypeScriptServerSpawner.getDebugPort(kind);
|
||||
const inspectFlag = process.env['TSS_DEBUG_BRK'] ? '--inspect-brk' : '--inspect';
|
||||
const tsServerForkOptions: electron.ForkOptions = {
|
||||
execArgv: [
|
||||
...(debugPort ? [`--inspect=${debugPort}`] : []),
|
||||
...(debugPort ? [`${inspectFlag}=${debugPort}`] : []),
|
||||
...(configuration.maxTsServerMemory ? [`--max-old-space-size=${configuration.maxTsServerMemory}`] : [])
|
||||
]
|
||||
};
|
||||
|
@ -200,7 +201,7 @@ export class TypeScriptServerSpawner {
|
|||
// We typically only want to debug the main semantic server
|
||||
return undefined;
|
||||
}
|
||||
const value = process.env['TSS_DEBUG'];
|
||||
const value = process.env['TSS_DEBUG_BRK'] || process.env['TSS_DEBUG'];
|
||||
if (value) {
|
||||
const port = parseInt(value);
|
||||
if (!isNaN(port)) {
|
||||
|
|
|
@ -29,31 +29,34 @@ suite('vscode API - languages', () => {
|
|||
const doc = await vscode.workspace.openTextDocument(file);
|
||||
const langIdNow = doc.languageId;
|
||||
let clock = 0;
|
||||
const disposables: vscode.Disposable[] = [];
|
||||
|
||||
let close = new Promise(resolve => {
|
||||
vscode.workspace.onDidCloseTextDocument(e => {
|
||||
disposables.push(vscode.workspace.onDidCloseTextDocument(e => {
|
||||
if (e === doc) {
|
||||
assert.equal(doc.languageId, langIdNow);
|
||||
assert.equal(clock, 0);
|
||||
clock += 1;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
let open = new Promise(resolve => {
|
||||
vscode.workspace.onDidOpenTextDocument(e => {
|
||||
disposables.push(vscode.workspace.onDidOpenTextDocument(e => {
|
||||
if (e === doc) { // same instance!
|
||||
assert.equal(doc.languageId, 'json');
|
||||
assert.equal(clock, 1);
|
||||
clock += 1;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
}));
|
||||
});
|
||||
let change = vscode.languages.setTextDocumentLanguage(doc, 'json');
|
||||
await Promise.all([change, close, open]);
|
||||
assert.equal(clock, 2);
|
||||
assert.equal(doc.languageId, 'json');
|
||||
disposables.forEach(disposable => disposable.dispose());
|
||||
disposables.length = 0;
|
||||
});
|
||||
|
||||
test('setTextDocumentLanguage -> error when language does not exist', async function () {
|
||||
|
|
|
@ -318,10 +318,14 @@ suite('notebook workflow', () => {
|
|||
// ---- move up and down ---- //
|
||||
|
||||
await vscode.commands.executeCommand('notebook.cell.moveDown');
|
||||
assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(vscode.notebook.activeNotebookEditor!.selection!), 1,
|
||||
`first move down, active cell ${vscode.notebook.activeNotebookEditor!.selection!.uri.toString()}, ${vscode.notebook.activeNotebookEditor!.selection!.source}`);
|
||||
|
||||
await vscode.commands.executeCommand('notebook.cell.moveDown');
|
||||
activeCell = vscode.notebook.activeNotebookEditor!.selection;
|
||||
|
||||
assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2);
|
||||
assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2,
|
||||
`second move down, active cell ${vscode.notebook.activeNotebookEditor!.selection!.uri.toString()}, ${vscode.notebook.activeNotebookEditor!.selection!.source}`);
|
||||
assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[0].source, 'test');
|
||||
assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[1].source, '');
|
||||
assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[2].source, 'test');
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
"css-loader": "^3.2.0",
|
||||
"debounce": "^1.0.0",
|
||||
"deemon": "^1.4.0",
|
||||
"electron": "8.3.0",
|
||||
"electron": "7.2.4",
|
||||
"eslint": "6.8.0",
|
||||
"eslint-plugin-jsdoc": "^19.1.0",
|
||||
"event-stream": "3.3.4",
|
||||
|
|
|
@ -148,11 +148,6 @@ async function handleRoot(req, res) {
|
|||
if (packageJSON.main && packageJSON.name !== 'vscode-web-playground') {
|
||||
return; // unsupported
|
||||
}
|
||||
|
||||
if (packageJSON.name === 'scss') {
|
||||
return; // seems to fail to JSON.parse()?!
|
||||
}
|
||||
|
||||
packageJSON.extensionKind = ['web']; // enable for Web
|
||||
|
||||
mapExtensionFolderToExtensionPackageJSON.set(extensionFolder, packageJSON);
|
||||
|
@ -171,11 +166,10 @@ async function handleRoot(req, res) {
|
|||
});
|
||||
});
|
||||
|
||||
const webConfiguration = escapeAttribute(JSON.stringify({ staticExtensions, folderUri: { scheme: 'memfs', path: `/sample-folder` }}));
|
||||
|
||||
const data = (await util.promisify(fs.readFile)(WEB_MAIN)).toString()
|
||||
.replace('{{WORKBENCH_WEB_CONFIGURATION}}', escapeAttribute(JSON.stringify({
|
||||
staticExtensions,
|
||||
folderUri: { scheme: 'memfs', path: `/sample-folder` }
|
||||
})))
|
||||
.replace('{{WORKBENCH_WEB_CONFIGURATION}}', () => webConfiguration) // use a replace function to avoid that regexp replace patterns ($&, $0, ...) are applied
|
||||
.replace('{{WEBVIEW_ENDPOINT}}', '')
|
||||
.replace('{{REMOTE_USER_DATA_URI}}', '');
|
||||
|
||||
|
|
|
@ -111,7 +111,10 @@ export function renderMarkdown(markdown: IMarkdownString, options: MarkdownRende
|
|||
}
|
||||
href = _href(href, false);
|
||||
if (options.baseUrl) {
|
||||
href = resolvePath(options.baseUrl, href).toString();
|
||||
const hasScheme = /^\w[\w\d+.-]*:/.test(href);
|
||||
if (!hasScheme) {
|
||||
href = resolvePath(options.baseUrl, href).toString();
|
||||
}
|
||||
}
|
||||
title = removeMarkdownEscapes(title);
|
||||
href = removeMarkdownEscapes(href);
|
||||
|
|
|
@ -41,6 +41,7 @@ export interface IMenuOptions {
|
|||
enableMnemonics?: boolean;
|
||||
anchorAlignment?: AnchorAlignment;
|
||||
expandDirection?: Direction;
|
||||
useEventAsContext?: boolean;
|
||||
}
|
||||
|
||||
export interface IMenuStyles {
|
||||
|
@ -316,7 +317,7 @@ export class Menu extends ActionBar {
|
|||
|
||||
return menuActionViewItem;
|
||||
} else {
|
||||
const menuItemOptions: IMenuItemOptions = { enableMnemonics: options.enableMnemonics };
|
||||
const menuItemOptions: IMenuItemOptions = { enableMnemonics: options.enableMnemonics, useEventAsContext: options.useEventAsContext };
|
||||
if (options.getKeyBinding) {
|
||||
const keybinding = options.getKeyBinding(action);
|
||||
if (keybinding) {
|
||||
|
|
|
@ -945,7 +945,8 @@ export class MenuBar extends Disposable {
|
|||
actionRunner: this.actionRunner,
|
||||
enableMnemonics: this.options.alwaysOnMnemonics || (this.mnemonicsInUse && this.options.enableMnemonics),
|
||||
ariaLabel: withNullAsUndefined(customMenu.buttonElement.getAttribute('aria-label')),
|
||||
expandDirection: this.options.compactMode !== undefined ? this.options.compactMode : Direction.Right
|
||||
expandDirection: this.options.compactMode !== undefined ? this.options.compactMode : Direction.Right,
|
||||
useEventAsContext: true
|
||||
};
|
||||
|
||||
let menuWidget = this._register(new Menu(menuHolder, customMenu.actions, menuOptions));
|
||||
|
|
|
@ -727,7 +727,7 @@ export class SelectBoxList extends Disposable implements ISelectBoxDelegate, ILi
|
|||
mouseSupport: false,
|
||||
accessibilityProvider: {
|
||||
getAriaLabel: (element) => element.text,
|
||||
getWidgetAriaLabel: () => localize('selectBox', "Select Box"),
|
||||
getWidgetAriaLabel: () => localize({ key: 'selectBox', comment: ['Behave like native select dropdown element.'] }, "Select Box"),
|
||||
getRole: () => 'option',
|
||||
getWidgetRole: () => 'listbox'
|
||||
}
|
||||
|
|
|
@ -9,10 +9,9 @@ import { ISerializableContextMenuItem, CONTEXT_MENU_CLOSE_CHANNEL, CONTEXT_MENU_
|
|||
export function registerContextMenuListener(): void {
|
||||
ipcMain.on(CONTEXT_MENU_CHANNEL, (event: IpcMainEvent, contextMenuId: number, items: ISerializableContextMenuItem[], onClickChannel: string, options?: IPopupOptions) => {
|
||||
const menu = createMenu(event, onClickChannel, items);
|
||||
const window = BrowserWindow.fromWebContents(event.sender);
|
||||
|
||||
menu.popup({
|
||||
window: window ? window : undefined,
|
||||
window: BrowserWindow.fromWebContents(event.sender),
|
||||
x: options ? options.x : undefined,
|
||||
y: options ? options.y : undefined,
|
||||
positioningItem: options ? options.positioningItem : undefined,
|
||||
|
|
|
@ -59,8 +59,7 @@ export class ProxyAuthHandler extends Disposable {
|
|||
title: 'VS Code',
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
webviewTag: true,
|
||||
enableWebSQL: false
|
||||
webviewTag: true
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -46,7 +46,6 @@ export class SharedProcess implements ISharedProcess {
|
|||
images: false,
|
||||
nodeIntegration: true,
|
||||
webgl: false,
|
||||
enableWebSQL: false,
|
||||
disableBlinkFeatures: 'Auxclick' // do NOT change, allows us to identify this window as shared-process in the process explorer
|
||||
}
|
||||
});
|
||||
|
|
|
@ -166,8 +166,7 @@ export class CodeWindow extends Disposable implements ICodeWindow {
|
|||
preload: URI.parse(this.doGetPreloadUrl()).fsPath,
|
||||
nodeIntegration: true,
|
||||
nodeIntegrationInWorker: RUN_TEXTMATE_IN_WORKER,
|
||||
webviewTag: true,
|
||||
enableWebSQL: false
|
||||
webviewTag: true
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ export class RenameInputField implements IContentWidget {
|
|||
const updateLabel = () => {
|
||||
const [accept, preview] = this._acceptKeybindings;
|
||||
this._keybindingService.lookupKeybinding(accept);
|
||||
this._label!.innerText = localize('label', "{0} to Rename, {1} to Preview", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());
|
||||
this._label!.innerText = localize({ key: 'label', comment: ['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"'] }, "{0} to Rename, {1} to Preview", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());
|
||||
};
|
||||
updateLabel();
|
||||
this._disposables.add(this._keybindingService.onDidUpdateKeybindings(updateLabel));
|
||||
|
|
|
@ -362,10 +362,9 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
|
|||
}
|
||||
const { id, uuid } = extension ? extension.identifier : <IExtensionIdentifier>arg1;
|
||||
let query = new Query()
|
||||
.withFlags(Flags.IncludeAssetUri, Flags.IncludeStatistics, Flags.IncludeFiles, Flags.IncludeVersionProperties, Flags.ExcludeNonValidated)
|
||||
.withFlags(Flags.IncludeAssetUri, Flags.IncludeStatistics, Flags.IncludeFiles, Flags.IncludeVersionProperties)
|
||||
.withPage(1, 1)
|
||||
.withFilter(FilterType.Target, 'Microsoft.VisualStudio.Code')
|
||||
.withFilter(FilterType.ExcludeWithFlags, flagsToString(Flags.Unpublished));
|
||||
.withFilter(FilterType.Target, 'Microsoft.VisualStudio.Code');
|
||||
|
||||
if (uuid) {
|
||||
query = query.withFilter(FilterType.ExtensionId, uuid);
|
||||
|
@ -426,8 +425,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
|
|||
let query = new Query()
|
||||
.withFlags(Flags.IncludeLatestVersionOnly, Flags.IncludeAssetUri, Flags.IncludeStatistics, Flags.IncludeFiles, Flags.IncludeVersionProperties)
|
||||
.withPage(1, pageSize)
|
||||
.withFilter(FilterType.Target, 'Microsoft.VisualStudio.Code')
|
||||
.withFilter(FilterType.ExcludeWithFlags, flagsToString(Flags.Unpublished));
|
||||
.withFilter(FilterType.Target, 'Microsoft.VisualStudio.Code');
|
||||
|
||||
if (text) {
|
||||
// Use category filter instead of "category:themes"
|
||||
|
@ -484,6 +482,11 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
|
|||
}
|
||||
|
||||
private queryGallery(query: Query, token: CancellationToken): Promise<{ galleryExtensions: IRawGalleryExtension[], total: number; }> {
|
||||
// Always exclude non validated and unpublished extensions
|
||||
query = query
|
||||
.withFlags(query.flags, Flags.ExcludeNonValidated)
|
||||
.withFilter(FilterType.ExcludeWithFlags, flagsToString(Flags.Unpublished));
|
||||
|
||||
if (!this.isEnabled()) {
|
||||
return Promise.reject(new Error('No extension gallery service configured.'));
|
||||
}
|
||||
|
@ -602,10 +605,9 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
|
|||
|
||||
getAllVersions(extension: IGalleryExtension, compatible: boolean): Promise<IGalleryExtensionVersion[]> {
|
||||
let query = new Query()
|
||||
.withFlags(Flags.IncludeVersions, Flags.IncludeFiles, Flags.IncludeVersionProperties, Flags.ExcludeNonValidated)
|
||||
.withFlags(Flags.IncludeVersions, Flags.IncludeFiles, Flags.IncludeVersionProperties)
|
||||
.withPage(1, 1)
|
||||
.withFilter(FilterType.Target, 'Microsoft.VisualStudio.Code')
|
||||
.withFilter(FilterType.ExcludeWithFlags, flagsToString(Flags.Unpublished));
|
||||
.withFilter(FilterType.Target, 'Microsoft.VisualStudio.Code');
|
||||
|
||||
if (extension.identifier.uuid) {
|
||||
query = query.withFilter(FilterType.ExtensionId, extension.identifier.uuid);
|
||||
|
|
|
@ -190,8 +190,7 @@ export class IssueMainService implements IIssueService {
|
|||
backgroundColor: data.styles.backgroundColor || DEFAULT_BACKGROUND_COLOR,
|
||||
webPreferences: {
|
||||
preload: URI.parse(require.toUrl('vs/base/parts/sandbox/electron-browser/preload.js')).fsPath,
|
||||
nodeIntegration: true,
|
||||
enableWebSQL: false
|
||||
nodeIntegration: true
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -241,8 +240,7 @@ export class IssueMainService implements IIssueService {
|
|||
title: localize('processExplorer', "Process Explorer"),
|
||||
webPreferences: {
|
||||
preload: URI.parse(require.toUrl('vs/base/parts/sandbox/electron-browser/preload.js')).fsPath,
|
||||
nodeIntegration: true,
|
||||
enableWebSQL: false
|
||||
nodeIntegration: true
|
||||
}
|
||||
});
|
||||
|
||||
|
|
6
src/vs/vscode.d.ts
vendored
6
src/vs/vscode.d.ts
vendored
|
@ -2645,7 +2645,6 @@ declare module 'vscode' {
|
|||
TypeParameter = 25
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Symbol tags are extra annotations that tweak the rendering of a symbol.
|
||||
*/
|
||||
|
@ -3055,7 +3054,6 @@ declare module 'vscode' {
|
|||
*/
|
||||
renameFile(oldUri: Uri, newUri: Uri, options?: { overwrite?: boolean, ignoreIfExists?: boolean }, metadata?: WorkspaceEditEntryMetadata): void;
|
||||
|
||||
|
||||
/**
|
||||
* Get all text edits grouped by resource.
|
||||
*
|
||||
|
@ -3964,7 +3962,6 @@ declare module 'vscode' {
|
|||
resolveCompletionItem?(item: T, token: CancellationToken): ProviderResult<T>;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* A document link is a range in a text document that links to an internal or external resource, like another
|
||||
* text document or a web site.
|
||||
|
@ -5657,7 +5654,6 @@ declare module 'vscode' {
|
|||
private constructor(id: string, label: string);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* A structure that defines a task kind in the system.
|
||||
* The value must be JSON-stringifyable.
|
||||
|
@ -8957,7 +8953,6 @@ declare module 'vscode' {
|
|||
readonly files: ReadonlyArray<{ oldUri: Uri, newUri: Uri }>;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* An event describing a change to the set of [workspace folders](#workspace.workspaceFolders).
|
||||
*/
|
||||
|
@ -10641,7 +10636,6 @@ declare module 'vscode' {
|
|||
*/
|
||||
export let breakpoints: Breakpoint[];
|
||||
|
||||
|
||||
/**
|
||||
* An [event](#Event) which fires when the [active debug session](#debug.activeDebugSession)
|
||||
* has changed. *Note* that the event also fires when the active debug session changes
|
||||
|
|
8
src/vs/vscode.proposed.d.ts
vendored
8
src/vs/vscode.proposed.d.ts
vendored
|
@ -78,7 +78,6 @@ declare module 'vscode' {
|
|||
readonly removed: string[];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Options to be used when getting a session from an [AuthenticationProvider](#AuthenticationProvider).
|
||||
*/
|
||||
|
@ -1018,8 +1017,6 @@ declare module 'vscode' {
|
|||
|
||||
//#endregion
|
||||
|
||||
|
||||
|
||||
//#region Terminal link handlers https://github.com/microsoft/vscode/issues/91606
|
||||
|
||||
export namespace window {
|
||||
|
@ -1534,7 +1531,6 @@ declare module 'vscode' {
|
|||
|
||||
export interface CustomTextEditorProvider {
|
||||
|
||||
|
||||
/**
|
||||
* Handle when the underlying resource for a custom editor is renamed.
|
||||
*
|
||||
|
@ -1552,7 +1548,6 @@ declare module 'vscode' {
|
|||
|
||||
//#endregion
|
||||
|
||||
|
||||
//#region allow QuickPicks to skip sorting: https://github.com/microsoft/vscode/issues/73904
|
||||
|
||||
export interface QuickPick<T extends QuickPickItem> extends QuickInput {
|
||||
|
@ -1841,7 +1836,6 @@ declare module 'vscode' {
|
|||
preloads?: Uri[];
|
||||
}
|
||||
|
||||
|
||||
export interface NotebookCellsChangeData {
|
||||
readonly start: number;
|
||||
readonly deletedCount: number;
|
||||
|
@ -2040,7 +2034,6 @@ declare module 'vscode' {
|
|||
|
||||
//#endregion
|
||||
|
||||
|
||||
//#region @eamodio - timeline: https://github.com/microsoft/vscode/issues/84297
|
||||
|
||||
export class TimelineItem {
|
||||
|
@ -2273,7 +2266,6 @@ declare module 'vscode' {
|
|||
|
||||
//#endregion
|
||||
|
||||
|
||||
//#region https://github.com/microsoft/vscode/issues/91555
|
||||
|
||||
export enum StandardTokenType {
|
||||
|
|
|
@ -10,17 +10,18 @@ import { URI, UriComponents } from 'vs/base/common/uri';
|
|||
import { ITextModel } from 'vs/editor/common/model';
|
||||
import { IModelService, shouldSynchronizeModel } from 'vs/editor/common/services/modelService';
|
||||
import { ITextModelService } from 'vs/editor/common/services/resolverService';
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { IFileService, FileOperation } from 'vs/platform/files/common/files';
|
||||
import { MainThreadDocumentsAndEditors } from 'vs/workbench/api/browser/mainThreadDocumentsAndEditors';
|
||||
import { ExtHostContext, ExtHostDocumentsShape, IExtHostContext, MainThreadDocumentsShape } from 'vs/workbench/api/common/extHost.protocol';
|
||||
import { ITextEditorModel } from 'vs/workbench/common/editor';
|
||||
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
|
||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||
import { toLocalResource } from 'vs/base/common/resources';
|
||||
import { toLocalResource, isEqualOrParent } from 'vs/base/common/resources';
|
||||
import { IWorkingCopyFileService } from 'vs/workbench/services/workingCopy/common/workingCopyFileService';
|
||||
|
||||
export class BoundModelReferenceCollection {
|
||||
|
||||
private _data = new Array<{ length: number, dispose(): void }>();
|
||||
private _data = new Array<{ uri: URI, length: number, dispose(): void }>();
|
||||
private _length = 0;
|
||||
|
||||
constructor(
|
||||
|
@ -34,10 +35,18 @@ export class BoundModelReferenceCollection {
|
|||
this._data = dispose(this._data);
|
||||
}
|
||||
|
||||
add(ref: IReference<ITextEditorModel>): void {
|
||||
remove(uri: URI): void {
|
||||
for (const entry of [...this._data] /* copy array because dispose will modify it */) {
|
||||
if (isEqualOrParent(entry.uri, uri)) {
|
||||
entry.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add(uri: URI, ref: IReference<ITextEditorModel>): void {
|
||||
const length = ref.object.textEditorModel.getValueLength();
|
||||
let handle: any;
|
||||
let entry: { length: number, dispose(): void };
|
||||
let entry: { uri: URI, length: number, dispose(): void };
|
||||
const dispose = () => {
|
||||
const idx = this._data.indexOf(entry);
|
||||
if (idx >= 0) {
|
||||
|
@ -48,7 +57,7 @@ export class BoundModelReferenceCollection {
|
|||
}
|
||||
};
|
||||
handle = setTimeout(dispose, this._maxAge);
|
||||
entry = { length, dispose };
|
||||
entry = { uri, length, dispose };
|
||||
|
||||
this._data.push(entry);
|
||||
this._length += length;
|
||||
|
@ -74,7 +83,7 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
|
|||
private _modelToDisposeMap: { [modelUrl: string]: IDisposable; };
|
||||
private readonly _proxy: ExtHostDocumentsShape;
|
||||
private readonly _modelIsSynced = new Set<string>();
|
||||
private _modelReferenceCollection = new BoundModelReferenceCollection();
|
||||
private readonly _modelReferenceCollection = new BoundModelReferenceCollection();
|
||||
|
||||
constructor(
|
||||
documentsAndEditors: MainThreadDocumentsAndEditors,
|
||||
|
@ -83,7 +92,8 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
|
|||
@ITextFileService textFileService: ITextFileService,
|
||||
@IFileService fileService: IFileService,
|
||||
@ITextModelService textModelResolverService: ITextModelService,
|
||||
@IWorkbenchEnvironmentService environmentService: IWorkbenchEnvironmentService
|
||||
@IWorkbenchEnvironmentService environmentService: IWorkbenchEnvironmentService,
|
||||
@IWorkingCopyFileService workingCopyFileService: IWorkingCopyFileService
|
||||
) {
|
||||
this._modelService = modelService;
|
||||
this._textModelResolverService = textModelResolverService;
|
||||
|
@ -109,6 +119,12 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
|
|||
}
|
||||
}));
|
||||
|
||||
this._toDispose.add(workingCopyFileService.onDidRunWorkingCopyFileOperation(e => {
|
||||
if (e.source && (e.operation === FileOperation.MOVE || e.operation === FileOperation.DELETE)) {
|
||||
this._modelReferenceCollection.remove(e.source);
|
||||
}
|
||||
}));
|
||||
|
||||
this._modelToDisposeMap = Object.create(null);
|
||||
}
|
||||
|
||||
|
@ -199,7 +215,7 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
|
|||
|
||||
private _handleAsResourceInput(uri: URI): Promise<boolean> {
|
||||
return this._textModelResolverService.createModelReference(uri).then(ref => {
|
||||
this._modelReferenceCollection.add(ref);
|
||||
this._modelReferenceCollection.add(uri, ref);
|
||||
const result = !!ref.object;
|
||||
return result;
|
||||
});
|
||||
|
|
|
@ -27,6 +27,7 @@ import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editor
|
|||
import { IPanelService } from 'vs/workbench/services/panel/common/panelService';
|
||||
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
|
||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||
import { IWorkingCopyFileService } from 'vs/workbench/services/workingCopy/common/workingCopyFileService';
|
||||
|
||||
namespace delta {
|
||||
|
||||
|
@ -326,11 +327,12 @@ export class MainThreadDocumentsAndEditors {
|
|||
@IEditorGroupsService private readonly _editorGroupService: IEditorGroupsService,
|
||||
@IBulkEditService bulkEditService: IBulkEditService,
|
||||
@IPanelService panelService: IPanelService,
|
||||
@IWorkbenchEnvironmentService environmentService: IWorkbenchEnvironmentService
|
||||
@IWorkbenchEnvironmentService environmentService: IWorkbenchEnvironmentService,
|
||||
@IWorkingCopyFileService workingCopyFileService: IWorkingCopyFileService
|
||||
) {
|
||||
this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostDocumentsAndEditors);
|
||||
|
||||
const mainThreadDocuments = this._toDispose.add(new MainThreadDocuments(this, extHostContext, this._modelService, this._textFileService, fileService, textModelResolverService, environmentService));
|
||||
const mainThreadDocuments = this._toDispose.add(new MainThreadDocuments(this, extHostContext, this._modelService, this._textFileService, fileService, textModelResolverService, environmentService, workingCopyFileService));
|
||||
extHostContext.set(MainContext.MainThreadDocuments, mainThreadDocuments);
|
||||
|
||||
const mainThreadTextEditors = this._toDispose.add(new MainThreadTextEditors(this, extHostContext, codeEditorService, bulkEditService, this._editorService, this._editorGroupService));
|
||||
|
|
|
@ -35,6 +35,7 @@ export class MainThreadNotebookDocument extends Disposable {
|
|||
this._textModel = new NotebookTextModel(handle, viewType, uri);
|
||||
this._register(this._textModel.onDidModelChange(e => {
|
||||
this._proxy.$acceptModelChanged(this.uri, e);
|
||||
this._proxy.$acceptEditorPropertiesChanged(uri, { selections: { selections: this._textModel.selections }, metadata: null });
|
||||
}));
|
||||
this._register(this._textModel.onDidSelectionChange(e => {
|
||||
const selectionsChange = e ? { selections: e } : null;
|
||||
|
|
|
@ -9,10 +9,10 @@ import { MainContext, ExtHostDecorationsShape, MainThreadDecorationsShape, Decor
|
|||
import { Disposable, Decoration } from 'vs/workbench/api/common/extHostTypes';
|
||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
|
||||
import { asArray } from 'vs/base/common/arrays';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { asArray } from 'vs/base/common/arrays';
|
||||
|
||||
interface ProviderData {
|
||||
provider: vscode.DecorationProvider;
|
||||
|
@ -40,7 +40,9 @@ export class ExtHostDecorations implements IExtHostDecorations {
|
|||
this._proxy.$registerDecorationProvider(handle, extensionId.value);
|
||||
|
||||
const listener = provider.onDidChangeDecorations(e => {
|
||||
this._proxy.$onDidChange(handle, !e ? null : asArray(e));
|
||||
this._proxy.$onDidChange(handle, !e || (Array.isArray(e) && e.length > 250)
|
||||
? null
|
||||
: asArray(e));
|
||||
});
|
||||
|
||||
return new Disposable(() => {
|
||||
|
|
|
@ -687,7 +687,7 @@ export class MoveFocusedViewAction extends Action {
|
|||
|
||||
const quickPick = this.quickInputService.createQuickPick();
|
||||
quickPick.placeholder = nls.localize('moveFocusedView.selectDestination', "Select a Destination for the View");
|
||||
quickPick.title = nls.localize('moveFocusedView.title', "View: Move {0}", viewDescriptor.name);
|
||||
quickPick.title = nls.localize({ key: 'moveFocusedView.title', comment: ['{0} indicates the title of the view the user has selected to move.'] }, "View: Move {0}", viewDescriptor.name);
|
||||
|
||||
const items: Array<IQuickPickItem | IQuickPickSeparator> = [];
|
||||
const currentContainer = this.viewDescriptorService.getViewContainerByViewId(focusedViewId)!;
|
||||
|
|
|
@ -377,10 +377,10 @@ export abstract class ViewPane extends Pane implements IView {
|
|||
private calculateTitle(title: string): string {
|
||||
const viewContainer = this.viewDescriptorService.getViewContainerByViewId(this.id)!;
|
||||
const model = this.viewDescriptorService.getViewContainerModel(viewContainer);
|
||||
const viewDescriptor = this.viewDescriptorService.getViewDescriptorById(this.id)!;
|
||||
const viewDescriptor = this.viewDescriptorService.getViewDescriptorById(this.id);
|
||||
const isDefault = this.viewDescriptorService.getDefaultContainerById(this.id) === viewContainer;
|
||||
|
||||
if (!isDefault && viewDescriptor.containerTitle && model.title !== viewDescriptor.containerTitle) {
|
||||
if (!isDefault && viewDescriptor?.containerTitle && model.title !== viewDescriptor.containerTitle) {
|
||||
return `${viewDescriptor.containerTitle}: ${title}`;
|
||||
}
|
||||
|
||||
|
|
|
@ -237,6 +237,11 @@ export interface IAddedViewDescriptorRef extends IViewDescriptorRef {
|
|||
size?: number;
|
||||
}
|
||||
|
||||
export interface IAddedViewDescriptorState {
|
||||
viewDescriptor: IViewDescriptor,
|
||||
collapsed?: boolean;
|
||||
}
|
||||
|
||||
export interface IViewContainerModel {
|
||||
|
||||
readonly title: string;
|
||||
|
|
|
@ -20,6 +20,7 @@ import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model';
|
|||
import { ConflictDetector } from 'vs/workbench/services/bulkEdit/browser/conflicts';
|
||||
import { ResourceMap } from 'vs/base/common/map';
|
||||
import { localize } from 'vs/nls';
|
||||
import { exturi } from 'vs/base/common/resources';
|
||||
|
||||
export class CheckedStates<T extends object> {
|
||||
|
||||
|
@ -209,13 +210,13 @@ export class BulkFileOperations {
|
|||
}
|
||||
|
||||
const insert = (uri: URI, map: Map<string, BulkFileOperation>) => {
|
||||
let key = uri.toString();
|
||||
let key = exturi.getComparisonKey(uri, true);
|
||||
let operation = map.get(key);
|
||||
|
||||
// rename
|
||||
if (!operation && newToOldUri.has(uri)) {
|
||||
uri = newToOldUri.get(uri)!;
|
||||
key = uri.toString();
|
||||
key = exturi.getComparisonKey(uri, true);
|
||||
operation = map.get(key);
|
||||
}
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ const VIEW_CONTAINER: ViewContainer = Registry.as<IViewContainersRegistry>(ViewE
|
|||
id: OpenDebugConsoleAction.ID,
|
||||
keybindings: openPanelKb
|
||||
},
|
||||
order: 3,
|
||||
order: 2,
|
||||
hideIfEmpty: true
|
||||
}, ViewContainerLocation.Panel);
|
||||
|
||||
|
|
|
@ -341,7 +341,7 @@ class DebugHoverAccessibilityProvider implements IListAccessibilityProvider<IExp
|
|||
}
|
||||
|
||||
getAriaLabel(element: IExpression): string {
|
||||
return nls.localize('variableAriaLabel', "{0}, value {1}, variables, debug", element.name, element.value);
|
||||
return nls.localize({ key: 'variableAriaLabel', comment: ['Do not translate placholders. Placeholders are name and value of a variable.'] }, "{0}, value {1}, variables, debug", element.name, element.value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -81,13 +81,18 @@ export class StartDebugQuickAccessProvider extends PickerQuickAccessProvider<IPi
|
|||
// Entries detected configurations
|
||||
const dynamicProviders = await configManager.getDynamicProviders();
|
||||
if (dynamicProviders.length > 0) {
|
||||
picks.push({ type: 'separator', label: localize('contributed', "contributed") });
|
||||
picks.push({
|
||||
type: 'separator', label: localize({
|
||||
key: 'contributed',
|
||||
comment: ['contributed is lower case because it looks better like that in UI. Nothing preceeds it. It is a name of the grouping of debug configurations.']
|
||||
}, "contributed")
|
||||
});
|
||||
}
|
||||
|
||||
dynamicProviders.forEach(provider => {
|
||||
picks.push({
|
||||
label: `$(folder) ${provider.label}...`,
|
||||
ariaLabel: localize('providerAriaLabel', "{0} contributed configurations", provider.label),
|
||||
ariaLabel: localize({ key: 'providerAriaLabel', comment: ['Placeholder stands for the provider label. For example "NodeJS".'] }, "{0} contributed configurations", provider.label),
|
||||
accept: async () => {
|
||||
const pick = await provider.pick();
|
||||
if (pick) {
|
||||
|
|
|
@ -359,7 +359,7 @@ class VariablesAccessibilityProvider implements IListAccessibilityProvider<IExpr
|
|||
return nls.localize('variableScopeAriaLabel', "Scope {0}", element.name);
|
||||
}
|
||||
if (element instanceof Variable) {
|
||||
return nls.localize('variableAriaLabel', "{0}, value {1}", element.name, element.value);
|
||||
return nls.localize({ key: 'variableAriaLabel', comment: ['Placeholders are variable name and variable value respectivly. They should not be translated.'] }, "{0}, value {1}", element.name, element.value);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
|
@ -164,7 +164,7 @@ export function prepareCommand(args: DebugProtocol.RunInTerminalRequestArguments
|
|||
case ShellType.bash:
|
||||
|
||||
quote = (s: string) => {
|
||||
s = s.replace(/(["'\\])/g, '\\$1');
|
||||
s = s.replace(/(["'\\\$])/g, '\\$1');
|
||||
return (s.indexOf(' ') >= 0 || s.indexOf(';') >= 0 || s.length === 0) ? `"${s}"` : s;
|
||||
};
|
||||
|
||||
|
|
|
@ -469,10 +469,10 @@ export async function changeCellToKind(kind: CellKind, context: INotebookCellAct
|
|||
}
|
||||
|
||||
export interface INotebookCellActionContext {
|
||||
cellTemplate?: BaseCellRenderTemplate;
|
||||
cell: ICellViewModel;
|
||||
notebookEditor: INotebookEditor;
|
||||
ui?: boolean;
|
||||
readonly cellTemplate?: BaseCellRenderTemplate;
|
||||
readonly cell: ICellViewModel;
|
||||
readonly notebookEditor: INotebookEditor;
|
||||
readonly ui?: boolean;
|
||||
}
|
||||
|
||||
abstract class InsertCellCommand extends NotebookAction {
|
||||
|
|
|
@ -359,11 +359,10 @@ export class MarkdownCellRenderer extends AbstractCellRenderer implements IListR
|
|||
}
|
||||
|
||||
renderTemplate(container: HTMLElement): MarkdownCellRenderTemplate {
|
||||
const contextKeyService = this.contextKeyServiceProvider(container);
|
||||
|
||||
container.tabIndex = -1;
|
||||
container.classList.add('markdown-cell-row');
|
||||
const disposables = new DisposableStore();
|
||||
const contextKeyService = disposables.add(this.contextKeyServiceProvider(container));
|
||||
const toolbar = disposables.add(this.createToolbar(container));
|
||||
const focusIndicator = DOM.append(container, DOM.$('.notebook-cell-focus-indicator'));
|
||||
focusIndicator.setAttribute('draggable', 'true');
|
||||
|
@ -897,11 +896,10 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
|
|||
}
|
||||
|
||||
renderTemplate(container: HTMLElement): CodeCellRenderTemplate {
|
||||
const contextKeyService = this.contextKeyServiceProvider(container);
|
||||
|
||||
container.classList.add('code-cell-row');
|
||||
container.tabIndex = -1;
|
||||
const disposables = new DisposableStore();
|
||||
const contextKeyService = disposables.add(this.contextKeyServiceProvider(container));
|
||||
const toolbar = disposables.add(this.createToolbar(container));
|
||||
const focusIndicator = DOM.append(container, DOM.$('.notebook-cell-focus-indicator'));
|
||||
focusIndicator.setAttribute('draggable', 'true');
|
||||
|
@ -914,7 +912,7 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
|
|||
const executionOrderLabel = DOM.append(runButtonContainer, $('div.execution-count-label'));
|
||||
|
||||
// create a special context key service that set the inCompositeEditor-contextkey
|
||||
const editorContextKeyService = this.contextKeyServiceProvider(container);
|
||||
const editorContextKeyService = disposables.add(this.contextKeyServiceProvider(container));
|
||||
const editorInstaService = this.instantiationService.createChild(new ServiceCollection([IContextKeyService, editorContextKeyService]));
|
||||
EditorContextKeys.inCompositeEditor.bindTo(editorContextKeyService).set(true);
|
||||
|
||||
|
|
|
@ -157,7 +157,11 @@ export function createTOCIterator(model: TOCTreeModel | SettingsTreeGroupElement
|
|||
|
||||
class SettingsAccessibilityProvider implements IListAccessibilityProvider<SettingsTreeGroupElement> {
|
||||
getWidgetAriaLabel(): string {
|
||||
return localize('settingsTOC', "Settings Table of Contents");
|
||||
return localize({
|
||||
key: 'settingsTOC',
|
||||
comment: ['A label for the table of contents for the full settings list']
|
||||
},
|
||||
"Settings Table of Contents");
|
||||
}
|
||||
|
||||
getAriaLabel(element: SettingsTreeElement): string {
|
||||
|
|
|
@ -89,13 +89,18 @@ function splitMatches(uri: URI, filterData: FuzzyScore | undefined): [IMatch[] |
|
|||
const allMatches = createMatches(filterData);
|
||||
|
||||
for (const match of allMatches) {
|
||||
if (match.end <= fileName.length) {
|
||||
matches!.push(match);
|
||||
if (match.start < fileName.length) {
|
||||
matches!.push(
|
||||
{
|
||||
start: match.start,
|
||||
end: Math.min(match.end, fileName.length)
|
||||
}
|
||||
);
|
||||
} else {
|
||||
descriptionMatches!.push(
|
||||
{
|
||||
start: match.start - fileName.length,
|
||||
end: match.end - fileName.length
|
||||
start: match.start - (fileName.length + 1),
|
||||
end: match.end - (fileName.length + 1)
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -403,7 +408,7 @@ export class SCMTreeKeyboardNavigationLabelProvider implements ICompressibleKeyb
|
|||
const fileName = basename(element.sourceUri);
|
||||
const filePath = this.labelService.getUriLabel(dirname(element.sourceUri), { relative: true });
|
||||
|
||||
return filePath.length !== 0 ? `${fileName}${filePath}` : fileName;
|
||||
return filePath.length !== 0 ? `${fileName} ${filePath}` : fileName;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -869,7 +869,9 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
|
|||
// Open to side / below
|
||||
buttons.push({
|
||||
iconClass: openSideBySideDirection === 'right' ? Codicon.splitHorizontal.classNames : Codicon.splitVertical.classNames,
|
||||
tooltip: openSideBySideDirection === 'right' ? localize('openToSide', "Open to the Side") : localize('openToBottom', "Open to the Bottom")
|
||||
tooltip: openSideBySideDirection === 'right' ?
|
||||
localize({ key: 'openToSide', comment: ['Open this file in a split editor on the left/right side'] }, "Open to the Side") :
|
||||
localize({ key: 'openToBottom', comment: ['Open this file in a split editor on the bottom'] }, "Open to the Bottom")
|
||||
});
|
||||
|
||||
// Remove from History
|
||||
|
|
|
@ -1043,7 +1043,7 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
}
|
||||
}
|
||||
// This must be normalized to the OS
|
||||
shellLaunchConfig.cwd = resources.toLocalResource(URI.from({ scheme: Schemas.file, path: cwd }), this.environmentService.configuration.remoteAuthority);
|
||||
shellLaunchConfig.cwd = isUNC(cwd) ? cwd : resources.toLocalResource(URI.from({ scheme: Schemas.file, path: cwd }), this.environmentService.configuration.remoteAuthority);
|
||||
}
|
||||
if (options.env) {
|
||||
shellLaunchConfig.env = options.env;
|
||||
|
|
|
@ -26,7 +26,7 @@ import { URI } from 'vs/base/common/uri';
|
|||
import { isWindows } from 'vs/base/common/platform';
|
||||
import { withNullAsUndefined } from 'vs/base/common/types';
|
||||
import { ITerminalInstance, ITerminalService, Direction } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
import { Action2, registerAction2 } from 'vs/platform/actions/common/actions';
|
||||
import { Action2, registerAction2, ILocalizedString } from 'vs/platform/actions/common/actions';
|
||||
import { TerminalQuickAccessProvider } from 'vs/workbench/contrib/terminal/browser/terminalQuickAccess';
|
||||
import { ToggleViewAction } from 'vs/workbench/browser/actions/layoutActions';
|
||||
import { IViewsService, IViewDescriptorService } from 'vs/workbench/common/views';
|
||||
|
@ -393,13 +393,13 @@ export class ClearTerminalAction extends Action {
|
|||
}
|
||||
|
||||
export function registerTerminalActions() {
|
||||
const category = TERMINAL_ACTION_CATEGORY;
|
||||
const category: ILocalizedString = { value: TERMINAL_ACTION_CATEGORY, original: 'Terminal' };
|
||||
|
||||
registerAction2(class extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.NEW_IN_ACTIVE_WORKSPACE,
|
||||
title: localize('workbench.action.terminal.newInActiveWorkspace', "Create New Integrated Terminal (In Active Workspace)"),
|
||||
title: { value: localize('workbench.action.terminal.newInActiveWorkspace', "Create New Integrated Terminal (In Active Workspace)"), original: 'Create New Integrated Terminal (In Active Workspace)' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -418,7 +418,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FOCUS_PREVIOUS_PANE,
|
||||
title: localize('workbench.action.terminal.focusPreviousPane', "Focus Previous Pane"),
|
||||
title: { value: localize('workbench.action.terminal.focusPreviousPane', "Focus Previous Pane"), original: 'Focus Previous Pane' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -443,7 +443,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FOCUS_NEXT_PANE,
|
||||
title: localize('workbench.action.terminal.focusNextPane', "Focus Next Pane"),
|
||||
title: { value: localize('workbench.action.terminal.focusNextPane', "Focus Next Pane"), original: 'Focus Next Pane' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -468,7 +468,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RESIZE_PANE_LEFT,
|
||||
title: localize('workbench.action.terminal.resizePaneLeft', "Resize Pane Left"),
|
||||
title: { value: localize('workbench.action.terminal.resizePaneLeft', "Resize Pane Left"), original: 'Resize Pane Left' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -487,7 +487,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RESIZE_PANE_RIGHT,
|
||||
title: localize('workbench.action.terminal.resizePaneRight', "Resize Pane Right"),
|
||||
title: { value: localize('workbench.action.terminal.resizePaneRight', "Resize Pane Right"), original: 'Resize Pane Right' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -506,7 +506,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RESIZE_PANE_UP,
|
||||
title: localize('workbench.action.terminal.resizePaneUp', "Resize Pane Up"),
|
||||
title: { value: localize('workbench.action.terminal.resizePaneUp', "Resize Pane Up"), original: 'Resize Pane Up' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -524,7 +524,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RESIZE_PANE_DOWN,
|
||||
title: localize('workbench.action.terminal.resizePaneDown', "Resize Pane Down"),
|
||||
title: { value: localize('workbench.action.terminal.resizePaneDown', "Resize Pane Down"), original: 'Resize Pane Down' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -542,7 +542,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FOCUS,
|
||||
title: localize('workbench.action.terminal.focus', "Focus Terminal"),
|
||||
title: { value: localize('workbench.action.terminal.focus', "Focus Terminal"), original: 'Focus Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -561,7 +561,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FOCUS_NEXT,
|
||||
title: localize('workbench.action.terminal.focusNext', "Focus Next Terminal"),
|
||||
title: { value: localize('workbench.action.terminal.focusNext', "Focus Next Terminal"), original: 'Focus Next Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -576,7 +576,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FOCUS_PREVIOUS,
|
||||
title: localize('workbench.action.terminal.focusPrevious', "Focus Previous Terminal"),
|
||||
title: { value: localize('workbench.action.terminal.focusPrevious', "Focus Previous Terminal"), original: 'Focus Previous Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -591,7 +591,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RUN_SELECTED_TEXT,
|
||||
title: localize('workbench.action.terminal.runSelectedText', "Run Selected Text In Active Terminal"),
|
||||
title: { value: localize('workbench.action.terminal.runSelectedText', "Run Selected Text In Active Terminal"), original: 'Run Selected Text In Active Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -621,7 +621,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RUN_ACTIVE_FILE,
|
||||
title: localize('workbench.action.terminal.runActiveFile', "Run Active File In Active Terminal"),
|
||||
title: { value: localize('workbench.action.terminal.runActiveFile', "Run Active File In Active Terminal"), original: 'Run Active File In Active Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -655,7 +655,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_DOWN_LINE,
|
||||
title: localize('workbench.action.terminal.scrollDown', "Scroll Down (Line)"),
|
||||
title: { value: localize('workbench.action.terminal.scrollDown', "Scroll Down (Line)"), original: 'Scroll Down (Line)' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -674,7 +674,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_DOWN_PAGE,
|
||||
title: localize('workbench.action.terminal.scrollDownPage', "Scroll Down (Page)"),
|
||||
title: { value: localize('workbench.action.terminal.scrollDownPage', "Scroll Down (Page)"), original: 'Scroll Down (Page)' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -693,7 +693,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_TO_BOTTOM,
|
||||
title: localize('workbench.action.terminal.scrollToBottom', "Scroll to Bottom"),
|
||||
title: { value: localize('workbench.action.terminal.scrollToBottom', "Scroll to Bottom"), original: 'Scroll to Bottom' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -712,7 +712,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_UP_LINE,
|
||||
title: localize('workbench.action.terminal.scrollUp', "Scroll Up (Line)"),
|
||||
title: { value: localize('workbench.action.terminal.scrollUp', "Scroll Up (Line)"), original: 'Scroll Up (Line)' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -731,7 +731,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_UP_PAGE,
|
||||
title: localize('workbench.action.terminal.scrollUpPage', "Scroll Up (Page)"),
|
||||
title: { value: localize('workbench.action.terminal.scrollUpPage', "Scroll Up (Page)"), original: 'Scroll Up (Page)' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -750,7 +750,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_TO_TOP,
|
||||
title: localize('workbench.action.terminal.scrollToTop', "Scroll to Top"),
|
||||
title: { value: localize('workbench.action.terminal.scrollToTop', "Scroll to Top"), original: 'Scroll to Top' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -769,7 +769,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.NAVIGATION_MODE_EXIT,
|
||||
title: localize('workbench.action.terminal.navigationModeExit', "Exit Navigation Mode"),
|
||||
title: { value: localize('workbench.action.terminal.navigationModeExit', "Exit Navigation Mode"), original: 'Exit Navigation Mode' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -787,7 +787,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.NAVIGATION_MODE_FOCUS_PREVIOUS,
|
||||
title: localize('workbench.action.terminal.navigationModeFocusPrevious', "Focus Previous Line (Navigation Mode)"),
|
||||
title: { value: localize('workbench.action.terminal.navigationModeFocusPrevious', "Focus Previous Line (Navigation Mode)"), original: 'Focus Previous Line (Navigation Mode)' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -808,7 +808,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.NAVIGATION_MODE_FOCUS_NEXT,
|
||||
title: localize('workbench.action.terminal.navigationModeFocusNext', "Focus Next Line (Navigation Mode)"),
|
||||
title: { value: localize('workbench.action.terminal.navigationModeFocusNext', "Focus Next Line (Navigation Mode)"), original: 'Focus Next Line (Navigation Mode)' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -829,7 +829,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.CLEAR_SELECTION,
|
||||
title: localize('workbench.action.terminal.clearSelection', "Clear Selection"),
|
||||
title: { value: localize('workbench.action.terminal.clearSelection', "Clear Selection"), original: 'Clear Selection' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -850,7 +850,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.MANAGE_WORKSPACE_SHELL_PERMISSIONS,
|
||||
title: localize('workbench.action.terminal.manageWorkspaceShellPermissions', "Manage Workspace Shell Permissions"),
|
||||
title: { value: localize('workbench.action.terminal.manageWorkspaceShellPermissions', "Manage Workspace Shell Permissions"), original: 'Manage Workspace Shell Permissions' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -863,7 +863,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RENAME,
|
||||
title: localize('workbench.action.terminal.rename', "Rename"),
|
||||
title: { value: localize('workbench.action.terminal.rename', "Rename"), original: 'Rename' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -884,7 +884,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FIND_FOCUS,
|
||||
title: localize('workbench.action.terminal.focusFind', "Focus Find"),
|
||||
title: { value: localize('workbench.action.terminal.focusFind', "Focus Find"), original: 'Focus Find' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -902,7 +902,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FIND_HIDE,
|
||||
title: localize('workbench.action.terminal.hideFind', "Hide Find"),
|
||||
title: { value: localize('workbench.action.terminal.hideFind', "Hide Find"), original: 'Hide Find' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -921,7 +921,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.QUICK_OPEN_TERM,
|
||||
title: localize('quickAccessTerminal', "Switch Active Terminal"),
|
||||
title: { value: localize('quickAccessTerminal', "Switch Active Terminal"), original: 'Switch Active Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -934,7 +934,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_TO_PREVIOUS_COMMAND,
|
||||
title: localize('workbench.action.terminal.scrollToPreviousCommand', "Scroll To Previous Command"),
|
||||
title: { value: localize('workbench.action.terminal.scrollToPreviousCommand', "Scroll To Previous Command"), original: 'Scroll To Previous Command' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -955,7 +955,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SCROLL_TO_NEXT_COMMAND,
|
||||
title: localize('workbench.action.terminal.scrollToNextCommand', "Scroll To Next Command"),
|
||||
title: { value: localize('workbench.action.terminal.scrollToNextCommand', "Scroll To Next Command"), original: 'Scroll To Next Command' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -976,7 +976,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SELECT_TO_PREVIOUS_COMMAND,
|
||||
title: localize('workbench.action.terminal.selectToPreviousCommand', "Select To Previous Command"),
|
||||
title: { value: localize('workbench.action.terminal.selectToPreviousCommand', "Select To Previous Command"), original: 'Select To Previous Command' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -997,7 +997,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SELECT_TO_NEXT_COMMAND,
|
||||
title: localize('workbench.action.terminal.selectToNextCommand', "Select To Next Command"),
|
||||
title: { value: localize('workbench.action.terminal.selectToNextCommand', "Select To Next Command"), original: 'Select To Next Command' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -1018,7 +1018,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SELECT_TO_PREVIOUS_LINE,
|
||||
title: localize('workbench.action.terminal.selectToPreviousLine', "Select To Previous Line"),
|
||||
title: { value: localize('workbench.action.terminal.selectToPreviousLine', "Select To Previous Line"), original: 'Select To Previous Line' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -1034,7 +1034,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SELECT_TO_NEXT_LINE,
|
||||
title: localize('workbench.action.terminal.selectToNextLine', "Select To Next Line"),
|
||||
title: { value: localize('workbench.action.terminal.selectToNextLine', "Select To Next Line"), original: 'Select To Next Line' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -1050,7 +1050,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_ESCAPE_SEQUENCE_LOGGING,
|
||||
title: localize('workbench.action.terminal.toggleEscapeSequenceLogging', "Toggle Escape Sequence Logging"),
|
||||
title: { value: localize('workbench.action.terminal.toggleEscapeSequenceLogging', "Toggle Escape Sequence Logging"), original: 'Toggle Escape Sequence Logging' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -1064,7 +1064,7 @@ export function registerTerminalActions() {
|
|||
const title = localize('workbench.action.terminal.sendSequence', "Send Custom Sequence To Terminal");
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SEND_SEQUENCE,
|
||||
title,
|
||||
title: { value: title, original: 'Send Custom Sequence To Terminal' },
|
||||
category,
|
||||
description: {
|
||||
description: title,
|
||||
|
@ -1090,7 +1090,7 @@ export function registerTerminalActions() {
|
|||
const title = localize('workbench.action.terminal.newWithCwd', "Create New Integrated Terminal Starting in a Custom Working Directory");
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.NEW_WITH_CWD,
|
||||
title,
|
||||
title: { value: title, original: 'Create New Integrated Terminal Starting in a Custom Working Directory' },
|
||||
category,
|
||||
description: {
|
||||
description: title,
|
||||
|
@ -1125,7 +1125,7 @@ export function registerTerminalActions() {
|
|||
const title = localize('workbench.action.terminal.renameWithArg', "Rename the Currently Active Terminal");
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RENAME_WITH_ARG,
|
||||
title,
|
||||
title: { value: title, original: 'Rename the Currently Active Terminal' },
|
||||
category,
|
||||
description: {
|
||||
description: title,
|
||||
|
@ -1159,7 +1159,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_FIND_REGEX,
|
||||
title: localize('workbench.action.terminal.toggleFindRegex', "Toggle Find Using Regex"),
|
||||
title: { value: localize('workbench.action.terminal.toggleFindRegex', "Toggle Find Using Regex"), original: 'Toggle Find Using Regex' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -1179,7 +1179,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_FIND_WHOLE_WORD,
|
||||
title: localize('workbench.action.terminal.toggleFindWholeWord', "Toggle Find Using Whole Word"),
|
||||
title: { value: localize('workbench.action.terminal.toggleFindWholeWord', "Toggle Find Using Whole Word"), original: 'Toggle Find Using Whole Word' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -1199,7 +1199,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_FIND_CASE_SENSITIVE,
|
||||
title: localize('workbench.action.terminal.toggleFindCaseSensitive', "Toggle Find Using Case Sensitive"),
|
||||
title: { value: localize('workbench.action.terminal.toggleFindCaseSensitive', "Toggle Find Using Case Sensitive"), original: 'Toggle Find Using Case Sensitive' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
|
@ -1219,7 +1219,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FIND_NEXT,
|
||||
title: localize('workbench.action.terminal.findNext', "Find Next"),
|
||||
title: { value: localize('workbench.action.terminal.findNext', "Find Next"), original: 'Find Next' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: [
|
||||
|
@ -1245,7 +1245,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FIND_PREVIOUS,
|
||||
title: localize('workbench.action.terminal.findPrevious', "Find Previous"),
|
||||
title: { value: localize('workbench.action.terminal.findPrevious', "Find Previous"), original: 'Find Previous' },
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: [
|
||||
|
@ -1271,7 +1271,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.RELAUNCH,
|
||||
title: localize('workbench.action.terminal.relaunch', "Relaunch Active Terminal"),
|
||||
title: { value: localize('workbench.action.terminal.relaunch', "Relaunch Active Terminal"), original: 'Relaunch Active Terminal' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
@ -1284,7 +1284,7 @@ export function registerTerminalActions() {
|
|||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.SHOW_ENVIRONMENT_INFORMATION,
|
||||
title: localize('workbench.action.terminal.showEnvironmentInformation', "Show Environment Information"),
|
||||
title: { value: localize('workbench.action.terminal.showEnvironmentInformation', "Show Environment Information"), original: 'Show Environment Information' },
|
||||
f1: true,
|
||||
category
|
||||
});
|
||||
|
|
|
@ -16,17 +16,26 @@ export const terminalConfiguration: IConfigurationNode = {
|
|||
type: 'object',
|
||||
properties: {
|
||||
'terminal.integrated.automationShell.linux': {
|
||||
markdownDescription: localize('terminal.integrated.automationShell.linux', "A path that when set will override {0} and ignore {1} values for automation-related terminal usage like tasks and debug.", '`terminal.integrated.shell.linux`', '`shellArgs`'),
|
||||
markdownDescription: localize({
|
||||
key: 'terminal.integrated.automationShell.linux',
|
||||
comment: ['{0} and {1} are the `shell` and `shellArgs` settings keys']
|
||||
}, "A path that when set will override {0} and ignore {1} values for automation-related terminal usage like tasks and debug.", '`terminal.integrated.shell.linux`', '`shellArgs`'),
|
||||
type: ['string', 'null'],
|
||||
default: null
|
||||
},
|
||||
'terminal.integrated.automationShell.osx': {
|
||||
markdownDescription: localize('terminal.integrated.automationShell.osx', "A path that when set will override {0} and ignore {1} values for automation-related terminal usage like tasks and debug.", '`terminal.integrated.shell.osx`', '`shellArgs`'),
|
||||
markdownDescription: localize({
|
||||
key: 'terminal.integrated.automationShell.osx',
|
||||
comment: ['{0} and {1} are the `shell` and `shellArgs` settings keys']
|
||||
}, "A path that when set will override {0} and ignore {1} values for automation-related terminal usage like tasks and debug.", '`terminal.integrated.shell.osx`', '`shellArgs`'),
|
||||
type: ['string', 'null'],
|
||||
default: null
|
||||
},
|
||||
'terminal.integrated.automationShell.windows': {
|
||||
markdownDescription: localize('terminal.integrated.automationShell.windows', "A path that when set will override {0} and ignore {1} values for automation-related terminal usage like tasks and debug.", '`terminal.integrated.shell.windows`', '`shellArgs`'),
|
||||
markdownDescription: localize({
|
||||
key: 'terminal.integrated.automationShell.windows',
|
||||
comment: ['{0} and {1} are the `shell` and `shellArgs` settings keys']
|
||||
}, "A path that when set will override {0} and ignore {1} values for automation-related terminal usage like tasks and debug.", '`terminal.integrated.shell.windows`', '`shellArgs`'),
|
||||
type: ['string', 'null'],
|
||||
default: null
|
||||
},
|
||||
|
|
|
@ -292,7 +292,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
|
|||
this.disableSync();
|
||||
this.notificationService.notify({
|
||||
severity: Severity.Error,
|
||||
message: localize('error upgrade required', "Turned off sync because the current version ({0}) of {1} is not compatible with the Preferences Sync Service. Please update and turn on sync to continue syncing.", this.productService.version, this.productService.nameLong),
|
||||
message: localize('error upgrade required', "Turned off sync because the current version ({0}, {1}) of {2} is not compatible with the Preferences Sync Service. Please update and turn on sync to continue syncing.", this.productService.version, this.productService.commit, this.productService.nameLong),
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -337,7 +337,7 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
|
|||
|
||||
private moveViews(views: IViewDescriptor[], from: ViewContainer, to: ViewContainer, skipCacheUpdate?: boolean): void {
|
||||
this.removeViews(from, views);
|
||||
this.addViews(to, views);
|
||||
this.addViews(to, views, true);
|
||||
|
||||
const oldLocation = this.getViewContainerLocation(from);
|
||||
const newLocation = this.getViewContainerLocation(to);
|
||||
|
@ -676,14 +676,14 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
|
|||
});
|
||||
}
|
||||
|
||||
private addViews(container: ViewContainer, views: IViewDescriptor[]): void {
|
||||
private addViews(container: ViewContainer, views: IViewDescriptor[], expandViews?: boolean): void {
|
||||
// Update in memory cache
|
||||
views.forEach(view => {
|
||||
this.cachedViewInfo.set(view.id, { containerId: container.id });
|
||||
this.getOrCreateDefaultViewLocationContextKey(view).set(this.getDefaultContainerById(view.id) === container);
|
||||
});
|
||||
|
||||
this.getViewContainerModel(container).add(views);
|
||||
this.getViewContainerModel(container).add(views.map(view => { return { viewDescriptor: view, collapsed: expandViews ? false : undefined }; }));
|
||||
}
|
||||
|
||||
private removeViews(container: ViewContainer, views: IViewDescriptor[]): void {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { ViewContainer, IViewsRegistry, IViewDescriptor, Extensions as ViewExtensions, IViewContainerModel, IAddedViewDescriptorRef, IViewDescriptorRef } from 'vs/workbench/common/views';
|
||||
import { ViewContainer, IViewsRegistry, IViewDescriptor, Extensions as ViewExtensions, IViewContainerModel, IAddedViewDescriptorRef, IViewDescriptorRef, IAddedViewDescriptorState } from 'vs/workbench/common/views';
|
||||
import { IContextKeyService, IReadableSet } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { IStorageService, StorageScope, IWorkspaceStorageChangeEvent } from 'vs/platform/storage/common/storage';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
|
@ -461,12 +461,13 @@ export class ViewContainerModel extends Disposable implements IViewContainerMode
|
|||
});
|
||||
}
|
||||
|
||||
add(viewDescriptors: IViewDescriptor[]): void {
|
||||
add(addedViewDescriptorStates: IAddedViewDescriptorState[]): void {
|
||||
const addedItems: IViewDescriptorItem[] = [];
|
||||
const addedActiveDescriptors: IViewDescriptor[] = [];
|
||||
const addedVisibleItems: { index: number, viewDescriptor: IViewDescriptor, size?: number, collapsed: boolean; }[] = [];
|
||||
|
||||
for (const viewDescriptor of viewDescriptors) {
|
||||
for (const addedViewDescriptorState of addedViewDescriptorStates) {
|
||||
const viewDescriptor = addedViewDescriptorState.viewDescriptor;
|
||||
|
||||
if (viewDescriptor.when) {
|
||||
for (const key of viewDescriptor.when.keys()) {
|
||||
|
@ -482,13 +483,13 @@ export class ViewContainerModel extends Disposable implements IViewContainerMode
|
|||
} else {
|
||||
state.visibleGlobal = isUndefinedOrNull(state.visibleGlobal) ? !viewDescriptor.hideByDefault : state.visibleGlobal;
|
||||
}
|
||||
state.collapsed = isUndefinedOrNull(state.collapsed) ? !!viewDescriptor.collapsed : state.collapsed;
|
||||
state.collapsed = isUndefinedOrNull(addedViewDescriptorState.collapsed) ? (isUndefinedOrNull(state.collapsed) ? !!viewDescriptor.collapsed : state.collapsed) : addedViewDescriptorState.collapsed;
|
||||
} else {
|
||||
state = {
|
||||
active: false,
|
||||
visibleGlobal: !viewDescriptor.hideByDefault,
|
||||
visibleWorkspace: !viewDescriptor.hideByDefault,
|
||||
collapsed: !!viewDescriptor.collapsed,
|
||||
collapsed: isUndefinedOrNull(addedViewDescriptorState.collapsed) ? !!viewDescriptor.collapsed : addedViewDescriptorState.collapsed,
|
||||
};
|
||||
}
|
||||
this.viewDescriptorsState.set(viewDescriptor.id, state);
|
||||
|
|
|
@ -7,6 +7,7 @@ import * as assert from 'assert';
|
|||
import { BoundModelReferenceCollection } from 'vs/workbench/api/browser/mainThreadDocuments';
|
||||
import { createTextModel } from 'vs/editor/test/common/editorTestUtils';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
|
||||
suite('BoundModelReferenceCollection', () => {
|
||||
|
||||
|
@ -20,12 +21,14 @@ suite('BoundModelReferenceCollection', () => {
|
|||
|
||||
let didDispose = false;
|
||||
|
||||
col.add({
|
||||
object: <any>{ textEditorModel: createTextModel('farboo') },
|
||||
dispose() {
|
||||
didDispose = true;
|
||||
}
|
||||
});
|
||||
col.add(
|
||||
URI.parse('test://farboo'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('farboo') },
|
||||
dispose() {
|
||||
didDispose = true;
|
||||
}
|
||||
});
|
||||
|
||||
await timeout(30);
|
||||
assert.equal(didDispose, true);
|
||||
|
@ -35,27 +38,95 @@ suite('BoundModelReferenceCollection', () => {
|
|||
|
||||
let disposed: number[] = [];
|
||||
|
||||
col.add({
|
||||
object: <any>{ textEditorModel: createTextModel('farboo') },
|
||||
dispose() {
|
||||
disposed.push(0);
|
||||
}
|
||||
});
|
||||
col.add({
|
||||
object: <any>{ textEditorModel: createTextModel('boofar') },
|
||||
dispose() {
|
||||
disposed.push(1);
|
||||
}
|
||||
});
|
||||
col.add(
|
||||
URI.parse('test://farboo'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('farboo') },
|
||||
dispose() {
|
||||
disposed.push(0);
|
||||
}
|
||||
});
|
||||
|
||||
col.add({
|
||||
object: <any>{ textEditorModel: createTextModel(new Array(71).join('x')) },
|
||||
dispose() {
|
||||
disposed.push(2);
|
||||
}
|
||||
});
|
||||
col.add(
|
||||
URI.parse('test://boofar'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('boofar') },
|
||||
dispose() {
|
||||
disposed.push(1);
|
||||
}
|
||||
});
|
||||
|
||||
col.add(
|
||||
URI.parse('test://xxxxxxx'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel(new Array(71).join('x')) },
|
||||
dispose() {
|
||||
disposed.push(2);
|
||||
}
|
||||
});
|
||||
|
||||
assert.deepEqual(disposed, [0, 1]);
|
||||
});
|
||||
|
||||
test('dispose uri', () => {
|
||||
|
||||
let disposed: number[] = [];
|
||||
|
||||
col.add(
|
||||
URI.parse('test:///farboo'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('farboo') },
|
||||
dispose() {
|
||||
disposed.push(0);
|
||||
}
|
||||
});
|
||||
|
||||
col.add(
|
||||
URI.parse('test:///boofar'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('boofar') },
|
||||
dispose() {
|
||||
disposed.push(1);
|
||||
}
|
||||
});
|
||||
|
||||
col.add(
|
||||
URI.parse('test:///boo/far1'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('boo/far1') },
|
||||
dispose() {
|
||||
disposed.push(2);
|
||||
}
|
||||
});
|
||||
|
||||
col.add(
|
||||
URI.parse('test:///boo/far2'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('boo/far2') },
|
||||
dispose() {
|
||||
disposed.push(3);
|
||||
}
|
||||
});
|
||||
|
||||
col.add(
|
||||
URI.parse('test:///boo1/far'),
|
||||
{
|
||||
object: <any>{ textEditorModel: createTextModel('boo1/far') },
|
||||
dispose() {
|
||||
disposed.push(4);
|
||||
}
|
||||
});
|
||||
|
||||
col.remove(URI.parse('test:///unknown'));
|
||||
assert.equal(disposed.length, 0);
|
||||
|
||||
col.remove(URI.parse('test:///farboo'));
|
||||
assert.deepEqual(disposed, [0]);
|
||||
|
||||
disposed = [];
|
||||
|
||||
col.remove(URI.parse('test:///boo'));
|
||||
assert.deepEqual(disposed, [2, 3]);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
@ -25,7 +25,7 @@ import { NullLogService } from 'vs/platform/log/common/log';
|
|||
import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService';
|
||||
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { TestTextResourcePropertiesService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
import { TestTextResourcePropertiesService, TestWorkingCopyFileService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
suite('MainThreadDocumentsAndEditors', () => {
|
||||
|
||||
|
@ -88,7 +88,8 @@ suite('MainThreadDocumentsAndEditors', () => {
|
|||
return undefined;
|
||||
}
|
||||
},
|
||||
TestEnvironmentService
|
||||
TestEnvironmentService,
|
||||
new TestWorkingCopyFileService()
|
||||
);
|
||||
});
|
||||
|
||||
|
|
|
@ -104,6 +104,7 @@ suite('MainThreadEditors', () => {
|
|||
};
|
||||
});
|
||||
services.set(IWorkingCopyFileService, new class extends mock<IWorkingCopyFileService>() {
|
||||
onDidRunWorkingCopyFileOperation = Event.None;
|
||||
move(source: URI, target: URI) {
|
||||
movedResources.set(source, target);
|
||||
return Promise.resolve(Object.create(null));
|
||||
|
|
|
@ -14,8 +14,11 @@ import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier, isSingleFolderW
|
|||
import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService';
|
||||
import { isLinux, isMacintosh } from 'vs/base/common/platform';
|
||||
import { InMemoryStorageService, IWillSaveStateEvent } from 'vs/platform/storage/common/storage';
|
||||
import { WorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
|
||||
import { WorkingCopyService, IWorkingCopy } from 'vs/workbench/services/workingCopy/common/workingCopyService';
|
||||
import { NullExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IWorkingCopyFileService, IWorkingCopyFileOperationParticipant, WorkingCopyFileEvent } from 'vs/workbench/services/workingCopy/common/workingCopyFileService';
|
||||
import { IDisposable, Disposable } from 'vs/base/common/lifecycle';
|
||||
import { FileOperation, IFileStatWithMetadata } from 'vs/platform/files/common/files';
|
||||
|
||||
export class TestTextResourcePropertiesService implements ITextResourcePropertiesService {
|
||||
|
||||
|
@ -121,6 +124,29 @@ export class TestStorageService extends InMemoryStorageService {
|
|||
|
||||
export class TestWorkingCopyService extends WorkingCopyService { }
|
||||
|
||||
export class TestWorkingCopyFileService implements IWorkingCopyFileService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
onWillRunWorkingCopyFileOperation: Event<WorkingCopyFileEvent> = Event.None;
|
||||
onDidFailWorkingCopyFileOperation: Event<WorkingCopyFileEvent> = Event.None;
|
||||
onDidRunWorkingCopyFileOperation: Event<WorkingCopyFileEvent> = Event.None;
|
||||
|
||||
addFileOperationParticipant(participant: IWorkingCopyFileOperationParticipant): IDisposable { return Disposable.None; }
|
||||
|
||||
async runFileOperationParticipants(target: URI, source: URI | undefined, operation: FileOperation): Promise<void> { }
|
||||
|
||||
async delete(resource: URI, options?: { useTrash?: boolean | undefined; recursive?: boolean | undefined; } | undefined): Promise<void> { }
|
||||
|
||||
registerWorkingCopyProvider(provider: (resourceOrFolder: URI) => IWorkingCopy[]): IDisposable { return Disposable.None; }
|
||||
|
||||
getDirty(resource: URI): IWorkingCopy[] { return []; }
|
||||
|
||||
move(source: URI, target: URI, overwrite?: boolean | undefined): Promise<IFileStatWithMetadata> { throw new Error('Method not implemented.'); }
|
||||
|
||||
copy(source: URI, target: URI, overwrite?: boolean | undefined): Promise<IFileStatWithMetadata> { throw new Error('Method not implemented.'); }
|
||||
}
|
||||
|
||||
export function mock<T>(): Ctor<T> {
|
||||
return function () { } as any;
|
||||
}
|
||||
|
|
|
@ -316,7 +316,7 @@ describe(`VSCode Smoke Tests (${opts.web ? 'Web' : 'Electron'})`, () => {
|
|||
if (!opts.web) { setupDataLossTests(); }
|
||||
if (!opts.web) { setupDataPreferencesTests(); }
|
||||
setupDataSearchTests();
|
||||
setupDataNotebookTests();
|
||||
if (!opts.web) { setupDataNotebookTests(); }
|
||||
setupDataLanguagesTests();
|
||||
setupDataEditorTests();
|
||||
setupDataStatusbarTests(!!opts.web);
|
||||
|
|
|
@ -116,7 +116,6 @@ app.on('ready', () => {
|
|||
nodeIntegration: true,
|
||||
webSecurity: false,
|
||||
webviewTag: true,
|
||||
enableWebSQL: false,
|
||||
preload: path.join(__dirname, '..', '..', '..', 'src', 'vs', 'base', 'parts', 'sandbox', 'electron-browser', 'preload.js') // ensure similar environment as VSCode as tests may depend on this
|
||||
}
|
||||
});
|
||||
|
|
|
@ -2715,10 +2715,10 @@ electron-to-chromium@^1.2.7:
|
|||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d"
|
||||
integrity sha1-eOy4o5kGYYe7N07t412ccFZagD0=
|
||||
|
||||
electron@8.3.0:
|
||||
version "8.3.0"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-8.3.0.tgz#c2b565a4c10d6d287d20164bcd5a478468b940a9"
|
||||
integrity sha512-XRjiIJICZCgUr2vKSUI2PTkfP0gPFqCtqJUaTJSfCTuE3nTrxBKOUNeRMuCzEqspKkpFQU3SB3MdbMSHmZARlQ==
|
||||
electron@7.2.4:
|
||||
version "7.2.4"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-7.2.4.tgz#9fc0446dae23ead897af8742470cb18da55c6ce9"
|
||||
integrity sha512-Z+R692uTzXgP8AHrabE+kkrMlQJ6pnAYoINenwj9QSqaD2YbO8IuXU9DMCcUY0+VpA91ee09wFZJNUKYPMnCKg==
|
||||
dependencies:
|
||||
"@electron/get" "^1.0.1"
|
||||
"@types/node" "^12.0.12"
|
||||
|
|
Loading…
Reference in a new issue