From 1ff2d0c2b32f8d5e2079a8c437ffb17ec148ee67 Mon Sep 17 00:00:00 2001 From: ahaWDY <2503131624@qq.com> Date: Wed, 24 Feb 2021 18:30:41 +0100 Subject: [PATCH 1/9] update logo for both github themes Signed-off-by: ahaWDY <2503131624@qq.com> update gray logo for both github themes Signed-off-by: ahaWDY <2503131624@qq.com> --- README.md | 2 +- logo/theia-logo-gray.svg | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 logo/theia-logo-gray.svg diff --git a/README.md b/README.md index e8093733015e9..fb33783f390f8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
diff --git a/logo/theia-logo-gray.svg b/logo/theia-logo-gray.svg new file mode 100644 index 0000000000000..156baac36b306 --- /dev/null +++ b/logo/theia-logo-gray.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + From 5bb23f4348e302b46a1cdb00ab504140c4197332 Mon Sep 17 00:00:00 2001 From: Nigel Westbury Date: Fri, 17 Apr 2020 10:00:18 +0100 Subject: [PATCH 2/9] Remove extraneous entries in Source Control view for nested Git repositories Signed-off-by: Nigel Westbury --- packages/git/src/node/dugite-git.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/git/src/node/dugite-git.ts b/packages/git/src/node/dugite-git.ts index 0149b502f1f61..4dda89cb9edea 100644 --- a/packages/git/src/node/dugite-git.ts +++ b/packages/git/src/node/dugite-git.ts @@ -877,7 +877,14 @@ export class DugiteGit implements Git { } private async mapFileChanges(toMap: DugiteStatus, repositoryPath: string): Promise { - return Promise.all(toMap.files.map(file => this.mapFileChange(file, repositoryPath))); + return Promise.all(toMap.files + .filter(file => !this.isNestedGitRepository(file)) + .map(file => this.mapFileChange(file, repositoryPath)) + ); + } + + private isNestedGitRepository(fileChange: DugiteFileChange): boolean { + return fileChange.path.endsWith('/'); } private async mapFileChange(toMap: DugiteFileChange, repositoryPath: string): Promise { From 016ebebc31ae06225f8375b2a7c313203b9855d7 Mon Sep 17 00:00:00 2001 From: vince-fugnitto Date: Wed, 24 Feb 2021 12:46:25 -0500 Subject: [PATCH 3/9] api-tests: fix intermittent failures The following commit updates the `api-tests` in order to resolve intermittent errors when running through 'github actions'. The changes consist of: - adding a `timeout` to the navigator test-suite similarly to other tests - cleaning up properly after the `monaco API` test-suite Signed-off-by: vince-fugnitto --- examples/api-tests/src/monaco-api.spec.js | 4 ++++ examples/api-tests/src/navigator.spec.js | 1 + 2 files changed, 5 insertions(+) diff --git a/examples/api-tests/src/monaco-api.spec.js b/examples/api-tests/src/monaco-api.spec.js index f6b3f3e8ab606..c0ee87fbfeff1 100644 --- a/examples/api-tests/src/monaco-api.spec.js +++ b/examples/api-tests/src/monaco-api.spec.js @@ -44,6 +44,10 @@ describe('Monaco API', async function () { monacoEditor = /** @type {MonacoEditor} */ (MonacoEditor.get(editor)); }); + after(async () => { + await editorManager.closeAll({ save: false }); + }); + it('KeybindingService.resolveKeybinding', () => { const simpleKeybinding = new monaco.keybindings.SimpleKeybinding(true, true, true, true, monaco.KeyCode.KEY_K); const chordKeybinding = simpleKeybinding.toChord(); diff --git a/examples/api-tests/src/navigator.spec.js b/examples/api-tests/src/navigator.spec.js index 303049e91bf70..7486275384690 100644 --- a/examples/api-tests/src/navigator.spec.js +++ b/examples/api-tests/src/navigator.spec.js @@ -16,6 +16,7 @@ // @ts-check describe('Navigator', function () { + this.timeout(5000); const { assert } = chai; From 88f8757e8421996458f425b46dec1bfb0f5d7195 Mon Sep 17 00:00:00 2001 From: Andrew Carlotti Date: Wed, 24 Feb 2021 03:25:46 +0000 Subject: [PATCH 4/9] Hidden tabs can no longer be clicked Fixes #5199 and #6100 Signed-off-by: Andrew Carlotti --- packages/core/src/browser/shell/tab-bar-toolbar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/browser/shell/tab-bar-toolbar.tsx b/packages/core/src/browser/shell/tab-bar-toolbar.tsx index e0f239677cce9..a94aa00c1df09 100644 --- a/packages/core/src/browser/shell/tab-bar-toolbar.tsx +++ b/packages/core/src/browser/shell/tab-bar-toolbar.tsx @@ -197,7 +197,7 @@ export class TabBarToolbar extends ReactWidget { } shouldHandleMouseEvent(event: MouseEvent): boolean { - return event.target instanceof Element && (!!this.inline.get(event.target.id) || event.target.id === '__more__'); + return event.target instanceof Element && this.node.contains(event.target); } protected commandIsEnabled(command: string): boolean { From 06f3ac4987dfcb4e804cb8169022cc5f3f21188c Mon Sep 17 00:00:00 2001 From: seantan22 Date: Fri, 29 Jan 2021 12:27:18 -0500 Subject: [PATCH 5/9] Increase Font-Weight on Toolbar Titles What it does - Increase font-weight of toolbar titles from 450 to 700 to align with VSCode Signed-off-by: seantan22 --- packages/core/src/browser/style/view-container.css | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/src/browser/style/view-container.css b/packages/core/src/browser/style/view-container.css index f284cc922869c..54f69957bf2ee 100644 --- a/packages/core/src/browser/style/view-container.css +++ b/packages/core/src/browser/style/view-container.css @@ -58,6 +58,7 @@ line-height: var(--theia-view-container-title-height); z-index: 10; color: var(--theia-sideBarSectionHeader-foreground); + font-weight: 700; } .theia-view-container .part > .header .theia-ExpansionToggle { From e3d305e15bf45681b4c057a314c77ff4f35eaa3e Mon Sep 17 00:00:00 2001 From: vince-fugnitto Date: Thu, 25 Feb 2021 10:54:52 -0500 Subject: [PATCH 6/9] docs: updated changelog for 1.11.0 release The following commit updates the `changelog` for the `1.11.0` release including: - notable updates, features, bug fixes - any possible breaking changes Signed-off-by: vince-fugnitto --- CHANGELOG.md | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7b898b1b9c88..fbb6bf162b8f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,51 @@ # Change Log -## v1.11.0 - 2021 +## v1.11.0 - 2/25/2021 + +- [api-samples] added example to echo the currently supported vscode API version [#8191](https://github.com/eclipse-theia/theia/pull/8191) +- [bulk-edit] added support for previewing refactorings [#8589](https://github.com/eclipse-theia/theia/pull/8589) +- [core] fixed context-menu position when the electron application is scaled (zoom in/zoom out) [#9082](https://github.com/eclipse-theia/theia/pull/9082) +- [core] fixed keyboard shortcuts when working with devTools in the electron application [#8943](https://github.com/eclipse-theia/theia/pull/8943) +- [core] fixed tabbar-toolbar mouse event handler [#9125](https://github.com/eclipse-theia/theia/pull/9125) +- [core] fixed theming issue for secondary buttons when using light themes [#9008](https://github.com/eclipse-theia/theia/pull/9008) +- [core] updated `ProgressMessageOptions.cancelable` documentation to reflect updated default [#9033](https://github.com/eclipse-theia/theia/pull/9033) +- [core] updated the tree search-box to align with vscode [#9005](https://github.com/eclipse-theia/theia/pull/9005) +- [core] updated tree-view parts header styling [#9128](https://github.com/eclipse-theia/theia/pull/9128) +- [documentation] added documentation on how to debug plugin sources in 'developing.md' [#9018](https://github.com/eclipse-theia/theia/pull/9018) +- [documentation] fixed typo in 'developing.md' [#9092](https://github.com/eclipse-theia/theia/pull/9092) +- [editor] added `onFocusChanged` event in order to update the active editor when switching editors [#9013](https://github.com/eclipse-theia/theia/pull/9013) +- [file-search] added support for performing file searches with whitespaces [#8989](https://github.com/eclipse-theia/theia/pull/8989) +- [git] added handling to remove extraneous entries in the `scm` for nested git repositories [#7629](https://github.com/eclipse-theia/theia/pull/7629) +- [keymaps] fixed keybinding disablement and remapping [#9088](https://github.com/eclipse-theia/theia/pull/9088) +- [keymaps] fixed serialization for the `keymaps.json` file [#9088](https://github.com/eclipse-theia/theia/pull/9088) +- [markers] fixed issue when enabling/disabling problem marker tabbar decorations [#9059](https://github.com/eclipse-theia/theia/pull/9059) +- [monaco] fixed theming issue when using third-party themes [#8964](https://github.com/eclipse-theia/theia/pull/8964) +- [monaco] fixed theming issues when registering themes with null or undefined properties [#9097](https://github.com/eclipse-theia/theia/pull/9097) +- [navigator] fixed issue when dragging-and-dropping files into the main area [#8927](https://github.com/eclipse-theia/theia/pull/8927) +- [navigator] fixed issue when performing a drag-and-drop without the proper selection [#9093](https://github.com/eclipse-theia/theia/pull/9093) +- [output] generalized the `output` APIs for extensibility [#9060](https://github.com/eclipse-theia/theia/pull/9060) +- [plugin] added API stub for terminal links [#9048](https://github.com/eclipse-theia/theia/pull/9048) +- [plugin] added missing `group` property to the `TaskDTO` interface [#8971](https://github.com/eclipse-theia/theia/pull/8971) +- [plugin] added support for submenu contributions [#8996](https://github.com/eclipse-theia/theia/pull/8996) +- [plugin] extracted plugin URI generation into an injectable class [#9027](https://github.com/eclipse-theia/theia/pull/9027) +- [plugin] fixed issue where `problemMatchers` were not properly set when configuring tasks [#8971](https://github.com/eclipse-theia/theia/pull/89771) +- [plugin] fixed welcome-view empty condition [#9047](https://github.com/eclipse-theia/theia/pull/9047) +- [preferences] added a `clear-all` button in the preferences-view input for clearing search results [#9113](https://github.com/eclipse-theia/theia/pull/9133) +- [preferences] added a result count badge in the preferences-view input when performing a search [#9113](https://github.com/eclipse-theia/theia/pull/9133) +- [preferences] fixed issue when attempting to validate numeric values from the preferences-view [#9089](https://github.com/eclipse-theia/theia/pull/9089) +- [preferences] fixed the `PreferenceChangeEvent` typing [#9057](https://github.com/eclipse-theia/theia/pull/9057) +- [preferences] improved overall performance of the preferences-view, including filtering and switching scopes [#8263](https://github.com/eclipse-theia/theia/pull/8263) +- [repo] updated list of builtin extensions when using the example applications [#9017](https://github.com/eclipse-theia/theia/pull/9017) +- [repo] uplifted CI/CD to use Python3 exclusively [#9085](https://github.com/eclipse-theia/theia/pull/9085) +- [search-in-workspace] fixed styling of the replace item border [#9090](https://github.com/eclipse-theia/theia/pull/9090) +- [task] updated logic to activate corresponding terminal when using the `show running tasks` action [#9016](https://github.com/eclipse-theia/theia/pull/9016) +- [vsx-registry] added API compatibility handling when installing extensions through the 'extensions-view' [#8191](https://github.com/eclipse-theia/theia/pull/8191) -- [core] revamp of tree search-box ui to align with vscode [#9005](https://github.com/eclipse-theia/theia/pull/9005) [Breaking Changes:](#breaking_changes_1.11.0) -- [core] updated `SearchBox.input` field type from `HTMLInputElement` to `HTMLSpanElement`. [#9005](https://github.com/eclipse-theia/theia/pull/9005) - +- [core] updated `SearchBox.input` field type from `HTMLInputElement` to `HTMLSpanElement` [#9005](https://github.com/eclipse-theia/theia/pull/9005) + - [[user-storage]](#1.11.0_user-storage_scheme_updated) `UserStorageUri` scheme was changed from 'user_storage' to 'user-storage' as '\_' is not a valid char in scheme (according to [RFC 3986](https://tools.ietf.org/html/rfc3986#page-17)) [#9049](https://github.com/eclipse-theia/theia/pull/9049) From 8d5e12accfbd6bbe0cd720d3ebd151b700f4dc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20Mar=C3=A9chal?= Date: Thu, 25 Feb 2021 19:33:07 -0500 Subject: [PATCH 7/9] release 1.11.0 --- dev-packages/application-manager/package.json | 6 +- dev-packages/application-package/package.json | 4 +- dev-packages/cli/package.json | 6 +- dev-packages/electron/package.json | 2 +- dev-packages/ext-scripts/package.json | 2 +- examples/api-samples/package.json | 10 +-- examples/api-tests/package.json | 4 +- examples/browser/package.json | 82 +++++++++---------- examples/electron/package.json | 82 +++++++++---------- lerna.json | 2 +- packages/bulk-edit/package.json | 14 ++-- packages/callhierarchy/package.json | 10 +-- packages/console/package.json | 8 +- packages/core/package.json | 6 +- packages/debug/package.json | 34 ++++---- packages/editor-preview/package.json | 8 +- packages/editor/package.json | 8 +- packages/file-search/package.json | 14 ++-- packages/filesystem/package.json | 8 +- packages/getting-started/package.json | 12 +-- packages/git/package.json | 20 ++--- packages/keymaps/package.json | 12 +-- packages/markers/package.json | 12 +-- packages/messages/package.json | 6 +- packages/metrics/package.json | 8 +- packages/mini-browser/package.json | 8 +- packages/monaco/package.json | 16 ++-- packages/navigator/package.json | 10 +-- packages/outline-view/package.json | 6 +- packages/output/package.json | 10 +-- packages/plugin-dev/package.json | 18 ++-- packages/plugin-ext-vscode/package.json | 18 ++-- packages/plugin-ext/package.json | 44 +++++----- packages/plugin-metrics/package.json | 12 +-- packages/plugin/package.json | 4 +- packages/preferences/package.json | 16 ++-- packages/preview/package.json | 12 +-- packages/process/package.json | 6 +- packages/scm-extra/package.json | 14 ++-- packages/scm/package.json | 12 +-- packages/search-in-workspace/package.json | 16 ++-- packages/task/package.json | 24 +++--- packages/terminal/package.json | 14 ++-- packages/timeline/package.json | 6 +- packages/typehierarchy/package.json | 8 +- packages/userstorage/package.json | 8 +- packages/variable-resolver/package.json | 6 +- packages/vsx-registry/package.json | 8 +- packages/workspace/package.json | 10 +-- 49 files changed, 343 insertions(+), 343 deletions(-) diff --git a/dev-packages/application-manager/package.json b/dev-packages/application-manager/package.json index aa6e20b6228e0..58724f4deff8a 100644 --- a/dev-packages/application-manager/package.json +++ b/dev-packages/application-manager/package.json @@ -1,6 +1,6 @@ { "name": "@theia/application-manager", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia application manager API.", "publishConfig": { "access": "public" @@ -32,7 +32,7 @@ "@babel/plugin-transform-classes": "^7.10.0", "@babel/plugin-transform-runtime": "^7.10.0", "@babel/preset-env": "^7.10.0", - "@theia/application-package": "1.10.0", + "@theia/application-package": "1.11.0", "@theia/compression-webpack-plugin": "^3.0.0", "@types/fs-extra": "^4.0.2", "@types/webpack": "^4.41.2", @@ -56,7 +56,7 @@ "worker-loader": "^1.1.1" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/dev-packages/application-package/package.json b/dev-packages/application-package/package.json index c56eba6f9c0e7..d342b6d6f4188 100644 --- a/dev-packages/application-package/package.json +++ b/dev-packages/application-package/package.json @@ -1,6 +1,6 @@ { "name": "@theia/application-package", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia application package API.", "publishConfig": { "access": "public" @@ -41,7 +41,7 @@ "write-json-file": "^2.2.0" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/dev-packages/cli/package.json b/dev-packages/cli/package.json index 0c6f68ba0700f..30eda85b4eb7b 100644 --- a/dev-packages/cli/package.json +++ b/dev-packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@theia/cli", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia CLI.", "publishConfig": { "access": "public" @@ -29,8 +29,8 @@ "clean": "theiaext clean" }, "dependencies": { - "@theia/application-manager": "1.10.0", - "@theia/application-package": "1.10.0", + "@theia/application-manager": "1.11.0", + "@theia/application-package": "1.11.0", "@types/chai": "^4.2.7", "@types/mkdirp": "^0.5.2", "@types/mocha": "^5.2.7", diff --git a/dev-packages/electron/package.json b/dev-packages/electron/package.json index 33ecbc73199ce..cd46b0cde7abd 100644 --- a/dev-packages/electron/package.json +++ b/dev-packages/electron/package.json @@ -1,6 +1,6 @@ { "name": "@theia/electron", - "version": "1.10.0", + "version": "1.11.0", "description": "Electron runtime dependencies for Theia", "publishConfig": { "access": "public" diff --git a/dev-packages/ext-scripts/package.json b/dev-packages/ext-scripts/package.json index f2262c541ebad..110391b68fe4b 100644 --- a/dev-packages/ext-scripts/package.json +++ b/dev-packages/ext-scripts/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@theia/ext-scripts", - "version": "1.10.0", + "version": "1.11.0", "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0", "description": "NPM scripts for Theia packages.", "bin": { diff --git a/examples/api-samples/package.json b/examples/api-samples/package.json index 81d72a2416151..8e7926bb2fff3 100644 --- a/examples/api-samples/package.json +++ b/examples/api-samples/package.json @@ -1,12 +1,12 @@ { "private": true, "name": "@theia/api-samples", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Example code to demonstrate Theia API", "dependencies": { - "@theia/core": "1.10.0", - "@theia/output": "1.10.0", - "@theia/vsx-registry": "1.10.0" + "@theia/core": "1.11.0", + "@theia/output": "1.11.0", + "@theia/vsx-registry": "1.11.0" }, "theiaExtensions": [ { @@ -44,6 +44,6 @@ "clean": "theiaext clean" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" } } diff --git a/examples/api-tests/package.json b/examples/api-tests/package.json index 4207110fe0283..238b95315ce57 100644 --- a/examples/api-tests/package.json +++ b/examples/api-tests/package.json @@ -1,9 +1,9 @@ { "name": "@theia/api-tests", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia API tests", "dependencies": { - "@theia/core": "1.10.0" + "@theia/core": "1.11.0" }, "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0", "repository": { diff --git a/examples/browser/package.json b/examples/browser/package.json index a16a833a066f3..206495babf513 100644 --- a/examples/browser/package.json +++ b/examples/browser/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@theia/example-browser", - "version": "1.10.0", + "version": "1.11.0", "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0", "theia": { "frontend": { @@ -14,45 +14,45 @@ } }, "dependencies": { - "@theia/api-samples": "1.10.0", - "@theia/bulk-edit": "1.10.0", - "@theia/callhierarchy": "1.10.0", - "@theia/console": "1.10.0", - "@theia/core": "1.10.0", - "@theia/debug": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/editor-preview": "1.10.0", - "@theia/file-search": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/getting-started": "1.10.0", - "@theia/git": "1.10.0", - "@theia/keymaps": "1.10.0", - "@theia/markers": "1.10.0", - "@theia/messages": "1.10.0", - "@theia/metrics": "1.10.0", - "@theia/mini-browser": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/outline-view": "1.10.0", - "@theia/output": "1.10.0", - "@theia/plugin-dev": "1.10.0", - "@theia/plugin-ext": "1.10.0", - "@theia/plugin-ext-vscode": "1.10.0", - "@theia/plugin-metrics": "1.10.0", - "@theia/preferences": "1.10.0", - "@theia/preview": "1.10.0", - "@theia/process": "1.10.0", - "@theia/scm": "1.10.0", - "@theia/scm-extra": "1.10.0", - "@theia/search-in-workspace": "1.10.0", - "@theia/task": "1.10.0", - "@theia/terminal": "1.10.0", - "@theia/timeline": "1.10.0", - "@theia/typehierarchy": "1.10.0", - "@theia/userstorage": "1.10.0", - "@theia/variable-resolver": "1.10.0", - "@theia/vsx-registry": "1.10.0", - "@theia/workspace": "1.10.0" + "@theia/api-samples": "1.11.0", + "@theia/bulk-edit": "1.11.0", + "@theia/callhierarchy": "1.11.0", + "@theia/console": "1.11.0", + "@theia/core": "1.11.0", + "@theia/debug": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/editor-preview": "1.11.0", + "@theia/file-search": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/getting-started": "1.11.0", + "@theia/git": "1.11.0", + "@theia/keymaps": "1.11.0", + "@theia/markers": "1.11.0", + "@theia/messages": "1.11.0", + "@theia/metrics": "1.11.0", + "@theia/mini-browser": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/outline-view": "1.11.0", + "@theia/output": "1.11.0", + "@theia/plugin-dev": "1.11.0", + "@theia/plugin-ext": "1.11.0", + "@theia/plugin-ext-vscode": "1.11.0", + "@theia/plugin-metrics": "1.11.0", + "@theia/preferences": "1.11.0", + "@theia/preview": "1.11.0", + "@theia/process": "1.11.0", + "@theia/scm": "1.11.0", + "@theia/scm-extra": "1.11.0", + "@theia/search-in-workspace": "1.11.0", + "@theia/task": "1.11.0", + "@theia/terminal": "1.11.0", + "@theia/timeline": "1.11.0", + "@theia/typehierarchy": "1.11.0", + "@theia/userstorage": "1.11.0", + "@theia/variable-resolver": "1.11.0", + "@theia/vsx-registry": "1.11.0", + "@theia/workspace": "1.11.0" }, "scripts": { "prepare": "yarn run clean && yarn build", @@ -68,6 +68,6 @@ "coverage:clean": "rimraf .nyc_output && rimraf coverage" }, "devDependencies": { - "@theia/cli": "1.10.0" + "@theia/cli": "1.11.0" } } diff --git a/examples/electron/package.json b/examples/electron/package.json index dde9126d97c9e..f1c7eec942a09 100644 --- a/examples/electron/package.json +++ b/examples/electron/package.json @@ -2,7 +2,7 @@ "private": true, "name": "@theia/example-electron", "productName": "Theia Electron Example", - "version": "1.10.0", + "version": "1.11.0", "main": "src-gen/frontend/electron-main.js", "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0", "theia": { @@ -14,45 +14,45 @@ } }, "dependencies": { - "@theia/api-samples": "1.10.0", - "@theia/bulk-edit": "1.10.0", - "@theia/callhierarchy": "1.10.0", - "@theia/console": "1.10.0", - "@theia/core": "1.10.0", - "@theia/debug": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/editor-preview": "1.10.0", - "@theia/electron": "1.10.0", - "@theia/file-search": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/getting-started": "1.10.0", - "@theia/git": "1.10.0", - "@theia/keymaps": "1.10.0", - "@theia/markers": "1.10.0", - "@theia/messages": "1.10.0", - "@theia/metrics": "1.10.0", - "@theia/mini-browser": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/outline-view": "1.10.0", - "@theia/output": "1.10.0", - "@theia/plugin-dev": "1.10.0", - "@theia/plugin-ext": "1.10.0", - "@theia/plugin-ext-vscode": "1.10.0", - "@theia/preferences": "1.10.0", - "@theia/preview": "1.10.0", - "@theia/process": "1.10.0", - "@theia/scm": "1.10.0", - "@theia/scm-extra": "1.10.0", - "@theia/search-in-workspace": "1.10.0", - "@theia/task": "1.10.0", - "@theia/terminal": "1.10.0", - "@theia/timeline": "1.10.0", - "@theia/typehierarchy": "1.10.0", - "@theia/userstorage": "1.10.0", - "@theia/variable-resolver": "1.10.0", - "@theia/vsx-registry": "1.10.0", - "@theia/workspace": "1.10.0" + "@theia/api-samples": "1.11.0", + "@theia/bulk-edit": "1.11.0", + "@theia/callhierarchy": "1.11.0", + "@theia/console": "1.11.0", + "@theia/core": "1.11.0", + "@theia/debug": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/editor-preview": "1.11.0", + "@theia/electron": "1.11.0", + "@theia/file-search": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/getting-started": "1.11.0", + "@theia/git": "1.11.0", + "@theia/keymaps": "1.11.0", + "@theia/markers": "1.11.0", + "@theia/messages": "1.11.0", + "@theia/metrics": "1.11.0", + "@theia/mini-browser": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/outline-view": "1.11.0", + "@theia/output": "1.11.0", + "@theia/plugin-dev": "1.11.0", + "@theia/plugin-ext": "1.11.0", + "@theia/plugin-ext-vscode": "1.11.0", + "@theia/preferences": "1.11.0", + "@theia/preview": "1.11.0", + "@theia/process": "1.11.0", + "@theia/scm": "1.11.0", + "@theia/scm-extra": "1.11.0", + "@theia/search-in-workspace": "1.11.0", + "@theia/task": "1.11.0", + "@theia/terminal": "1.11.0", + "@theia/timeline": "1.11.0", + "@theia/typehierarchy": "1.11.0", + "@theia/userstorage": "1.11.0", + "@theia/variable-resolver": "1.11.0", + "@theia/vsx-registry": "1.11.0", + "@theia/workspace": "1.11.0" }, "scripts": { "lint": "theiaext lint", @@ -65,6 +65,6 @@ "test": "electron-mocha --timeout 60000 \"./lib/test/**/*.espec.js\"" }, "devDependencies": { - "@theia/cli": "1.10.0" + "@theia/cli": "1.11.0" } } diff --git a/lerna.json b/lerna.json index 9f0130c374c3e..9533c3567e67c 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "lerna": "2.2.0", "npmClient": "yarn", "useWorkspaces": true, - "version": "1.10.0", + "version": "1.11.0", "command": { "run": { "stream": true diff --git a/packages/bulk-edit/package.json b/packages/bulk-edit/package.json index c88530cb7b6b4..ad77318789703 100644 --- a/packages/bulk-edit/package.json +++ b/packages/bulk-edit/package.json @@ -1,13 +1,13 @@ { "name": "@theia/bulk-edit", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Bulk Edit Extension", "dependencies": { - "@theia/core": "^1.10.0", - "@theia/editor": "^1.10.0", - "@theia/filesystem": "^1.10.0", - "@theia/monaco": "^1.10.0", - "@theia/workspace": "^1.10.0" + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/workspace": "1.11.0" }, "publishConfig": { "access": "public" @@ -41,7 +41,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "^1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/callhierarchy/package.json b/packages/callhierarchy/package.json index b1c6edc1dd521..edece6a8fbe0e 100644 --- a/packages/callhierarchy/package.json +++ b/packages/callhierarchy/package.json @@ -1,11 +1,11 @@ { "name": "@theia/callhierarchy", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Call Hierarchy Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/monaco": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/monaco": "1.11.0", "ts-md5": "^1.2.2" }, "publishConfig": { @@ -40,7 +40,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/console/package.json b/packages/console/package.json index 3aaa38ab069fd..8b6b9b349f0b1 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -1,10 +1,10 @@ { "name": "@theia/console", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Console Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/monaco": "1.10.0", + "@theia/core": "1.11.0", + "@theia/monaco": "1.11.0", "anser": "^2.0.1" }, "publishConfig": { @@ -39,7 +39,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/core/package.json b/packages/core/package.json index bf3e598766eb3..35daad23ed329 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@theia/core", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.", "main": "lib/common/index.js", "typings": "lib/common/index.d.ts", @@ -8,7 +8,7 @@ "@babel/runtime": "^7.10.0", "@phosphor/widgets": "^1.9.3", "@primer/octicons-react": "^9.0.0", - "@theia/application-package": "1.10.0", + "@theia/application-package": "1.11.0", "@types/body-parser": "^1.16.4", "@types/cookie": "^0.3.3", "@types/express": "^4.16.0", @@ -105,7 +105,7 @@ "generate-layout": "electron ./scripts/generate-layout" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0", + "@theia/ext-scripts": "1.11.0", "minimist": "^1.2.0" }, "nyc": { diff --git a/packages/debug/package.json b/packages/debug/package.json index 7e04c7b5fbf45..eb2b228571ac7 100644 --- a/packages/debug/package.json +++ b/packages/debug/package.json @@ -1,23 +1,23 @@ { "name": "@theia/debug", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Debug Extension", "dependencies": { - "@theia/application-package": "1.10.0", - "@theia/console": "1.10.0", - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/markers": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/output": "1.10.0", - "@theia/preferences": "1.10.0", - "@theia/process": "1.10.0", - "@theia/task": "1.10.0", - "@theia/terminal": "1.10.0", - "@theia/userstorage": "1.10.0", - "@theia/variable-resolver": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/application-package": "1.11.0", + "@theia/console": "1.11.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/markers": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/output": "1.11.0", + "@theia/preferences": "1.11.0", + "@theia/process": "1.11.0", + "@theia/task": "1.11.0", + "@theia/terminal": "1.11.0", + "@theia/userstorage": "1.11.0", + "@theia/variable-resolver": "1.11.0", + "@theia/workspace": "1.11.0", "jsonc-parser": "^2.2.0", "mkdirp": "^0.5.0", "p-debounce": "^2.1.0", @@ -64,7 +64,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/editor-preview/package.json b/packages/editor-preview/package.json index e9dfc6d56ac9a..da4255c8faa8f 100644 --- a/packages/editor-preview/package.json +++ b/packages/editor-preview/package.json @@ -1,10 +1,10 @@ { "name": "@theia/editor-preview", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Editor Preview Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0" + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0" }, "publishConfig": { "access": "public" @@ -38,7 +38,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/editor/package.json b/packages/editor/package.json index a53256ddf5ec2..8482d3d435ecd 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,10 +1,10 @@ { "name": "@theia/editor", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Editor Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/variable-resolver": "1.10.0", + "@theia/core": "1.11.0", + "@theia/variable-resolver": "1.11.0", "@types/base64-arraybuffer": "0.1.0", "base64-arraybuffer": "^0.1.5" }, @@ -40,7 +40,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/file-search/package.json b/packages/file-search/package.json index 5028011b0b0d4..018a27885f44f 100644 --- a/packages/file-search/package.json +++ b/packages/file-search/package.json @@ -1,13 +1,13 @@ { "name": "@theia/file-search", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - File Search Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/process": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/process": "1.11.0", + "@theia/workspace": "1.11.0", "fuzzy": "^0.1.3", "vscode-ripgrep": "^1.2.4" }, @@ -44,7 +44,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/filesystem/package.json b/packages/filesystem/package.json index b3272d616393d..e342bbc8fef1b 100644 --- a/packages/filesystem/package.json +++ b/packages/filesystem/package.json @@ -1,10 +1,10 @@ { "name": "@theia/filesystem", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - FileSystem Extension", "dependencies": { - "@theia/application-package": "1.10.0", - "@theia/core": "1.10.0", + "@theia/application-package": "1.11.0", + "@theia/core": "1.11.0", "@types/body-parser": "^1.17.0", "@types/rimraf": "^2.0.2", "@types/tar-fs": "^1.16.1", @@ -60,7 +60,7 @@ "test:watch": "theiaext test:watch" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/getting-started/package.json b/packages/getting-started/package.json index 73e9367b6e236..4cc124d4ae8a5 100644 --- a/packages/getting-started/package.json +++ b/packages/getting-started/package.json @@ -1,12 +1,12 @@ { "name": "@theia/getting-started", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - GettingStarted Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/keymaps": "1.10.0", - "@theia/workspace": "1.10.0" + "@theia/core": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/keymaps": "1.11.0", + "@theia/workspace": "1.11.0" }, "publishConfig": { "access": "public" @@ -41,7 +41,7 @@ "test:watch": "theiaext test:watch" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/git/package.json b/packages/git/package.json index 1d25fefae7c42..b3bb4cefdad3e 100644 --- a/packages/git/package.json +++ b/packages/git/package.json @@ -1,16 +1,16 @@ { "name": "@theia/git", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Git Integration", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/scm": "1.10.0", - "@theia/scm-extra": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/scm": "1.11.0", + "@theia/scm-extra": "1.11.0", + "@theia/workspace": "1.11.0", "@types/diff": "^3.2.2", "@types/p-queue": "^2.3.1", "diff": "^3.4.0", @@ -64,7 +64,7 @@ "test:watch": "theiaext test:watch" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0", + "@theia/ext-scripts": "1.11.0", "upath": "^1.0.2" }, "nyc": { diff --git a/packages/keymaps/package.json b/packages/keymaps/package.json index 2a56348866a09..9979937586320 100644 --- a/packages/keymaps/package.json +++ b/packages/keymaps/package.json @@ -1,12 +1,12 @@ { "name": "@theia/keymaps", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Custom Keymaps Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/userstorage": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/userstorage": "1.11.0", + "@theia/workspace": "1.11.0", "@types/lodash.debounce": "4.0.3", "ajv": "^6.5.3", "fuzzy": "^0.1.3", @@ -14,7 +14,7 @@ "lodash.debounce": "^4.0.8" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0", + "@theia/ext-scripts": "1.11.0", "@types/temp": "^0.8.29", "temp": "^0.8.3" }, diff --git a/packages/markers/package.json b/packages/markers/package.json index 087476f902b2f..3992d29fc2957 100644 --- a/packages/markers/package.json +++ b/packages/markers/package.json @@ -1,12 +1,12 @@ { "name": "@theia/markers", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Markers Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/workspace": "1.10.0" + "@theia/core": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/workspace": "1.11.0" }, "publishConfig": { "access": "public" @@ -40,7 +40,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/messages/package.json b/packages/messages/package.json index df0cec95c6ea2..d8ddb491f17a4 100644 --- a/packages/messages/package.json +++ b/packages/messages/package.json @@ -1,9 +1,9 @@ { "name": "@theia/messages", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Messages Extension", "dependencies": { - "@theia/core": "1.10.0", + "@theia/core": "1.11.0", "lodash.throttle": "^4.1.1", "markdown-it": "^8.4.0", "react-perfect-scrollbar": "^1.5.3", @@ -41,7 +41,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/metrics/package.json b/packages/metrics/package.json index eacdf03c10974..efd2b57fff8d8 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -1,10 +1,10 @@ { "name": "@theia/metrics", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Metrics Extension", "dependencies": { - "@theia/application-package": "1.10.0", - "@theia/core": "1.10.0", + "@theia/application-package": "1.11.0", + "@theia/core": "1.11.0", "prom-client": "^10.2.0" }, "publishConfig": { @@ -39,7 +39,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/mini-browser/package.json b/packages/mini-browser/package.json index fe19a809a926f..effb3e8965e87 100644 --- a/packages/mini-browser/package.json +++ b/packages/mini-browser/package.json @@ -1,10 +1,10 @@ { "name": "@theia/mini-browser", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Mini-Browser Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/filesystem": "1.10.0", + "@theia/core": "1.11.0", + "@theia/filesystem": "1.11.0", "@types/mime-types": "^2.1.0", "mime-types": "^2.1.18", "pdfobject": "^2.0.201604172", @@ -49,7 +49,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/monaco/package.json b/packages/monaco/package.json index 567222a786ac8..146acaf7c60c5 100644 --- a/packages/monaco/package.json +++ b/packages/monaco/package.json @@ -1,15 +1,15 @@ { "name": "@theia/monaco", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Monaco Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/markers": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/markers": "1.11.0", "@theia/monaco-editor-core": "^0.20.0", - "@theia/outline-view": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/outline-view": "1.11.0", + "@theia/workspace": "1.11.0", "deepmerge": "2.0.1", "fast-plist": "^0.1.2", "idb": "^4.0.5", @@ -51,7 +51,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/navigator/package.json b/packages/navigator/package.json index 1317b97f123ae..ed2a4b03d9aaa 100644 --- a/packages/navigator/package.json +++ b/packages/navigator/package.json @@ -1,11 +1,11 @@ { "name": "@theia/navigator", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Navigator Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/workspace": "1.11.0", "fuzzy": "^0.1.3", "minimatch": "^3.0.4" }, @@ -41,7 +41,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/outline-view/package.json b/packages/outline-view/package.json index bb79de653eba5..8e014fb249e15 100644 --- a/packages/outline-view/package.json +++ b/packages/outline-view/package.json @@ -1,9 +1,9 @@ { "name": "@theia/outline-view", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Outline View Extension", "dependencies": { - "@theia/core": "1.10.0" + "@theia/core": "1.11.0" }, "publishConfig": { "access": "public" @@ -37,7 +37,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/output/package.json b/packages/output/package.json index ce5112532dd4f..9233f29e9b25a 100644 --- a/packages/output/package.json +++ b/packages/output/package.json @@ -1,11 +1,11 @@ { "name": "@theia/output", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Output Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/monaco": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/monaco": "1.11.0", "@types/p-queue": "^2.3.1", "p-queue": "^2.4.2" }, @@ -41,7 +41,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/plugin-dev/package.json b/packages/plugin-dev/package.json index e3b19dd28d18c..15ea63364e83c 100644 --- a/packages/plugin-dev/package.json +++ b/packages/plugin-dev/package.json @@ -1,17 +1,17 @@ { "name": "@theia/plugin-dev", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Plugin Development Extension", "main": "lib/common/index.js", "typings": "lib/common/index.d.ts", "dependencies": { - "@theia/core": "1.10.0", - "@theia/debug": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/output": "1.10.0", - "@theia/plugin-ext": "1.10.0", - "@theia/preferences": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/debug": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/output": "1.11.0", + "@theia/plugin-ext": "1.11.0", + "@theia/preferences": "1.11.0", + "@theia/workspace": "1.11.0", "@types/request": "^2.0.3", "ps-tree": "^1.2.0", "request": "^2.82.0" @@ -50,7 +50,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/plugin-ext-vscode/package.json b/packages/plugin-ext-vscode/package.json index 2676c3877f3e9..17f37ba2ba254 100644 --- a/packages/plugin-ext-vscode/package.json +++ b/packages/plugin-ext-vscode/package.json @@ -1,15 +1,15 @@ { "name": "@theia/plugin-ext-vscode", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Plugin Extension for VsCode", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/plugin": "1.10.0", - "@theia/plugin-ext": "1.10.0", - "@theia/userstorage": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/plugin": "1.11.0", + "@theia/plugin-ext": "1.11.0", + "@theia/userstorage": "1.11.0", + "@theia/workspace": "1.11.0", "@types/request": "^2.0.3", "filenamify": "^4.1.0", "request": "^2.82.0" @@ -47,7 +47,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/plugin-ext/package.json b/packages/plugin-ext/package.json index 592cfc3602035..f9ca4abeb80bc 100644 --- a/packages/plugin-ext/package.json +++ b/packages/plugin-ext/package.json @@ -1,30 +1,30 @@ { "name": "@theia/plugin-ext", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Plugin Extension", "main": "lib/common/index.js", "typings": "lib/common/index.d.ts", "dependencies": { - "@theia/bulk-edit": "1.10.0", - "@theia/callhierarchy": "1.10.0", - "@theia/core": "1.10.0", - "@theia/debug": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/file-search": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/markers": "1.10.0", - "@theia/messages": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/output": "1.10.0", - "@theia/plugin": "1.10.0", - "@theia/preferences": "1.10.0", - "@theia/scm": "1.10.0", - "@theia/search-in-workspace": "1.10.0", - "@theia/task": "1.10.0", - "@theia/terminal": "1.10.0", - "@theia/timeline": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/bulk-edit": "1.11.0", + "@theia/callhierarchy": "1.11.0", + "@theia/core": "1.11.0", + "@theia/debug": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/file-search": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/markers": "1.11.0", + "@theia/messages": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/output": "1.11.0", + "@theia/plugin": "1.11.0", + "@theia/preferences": "1.11.0", + "@theia/scm": "1.11.0", + "@theia/search-in-workspace": "1.11.0", + "@theia/task": "1.11.0", + "@theia/terminal": "1.11.0", + "@theia/timeline": "1.11.0", + "@theia/workspace": "1.11.0", "@types/dompurify": "^2.0.2", "@types/mime": "^2.0.1", "decompress": "^4.2.1", @@ -79,7 +79,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0", + "@theia/ext-scripts": "1.11.0", "@types/decompress": "^4.2.2", "@types/escape-html": "^0.0.20", "@types/lodash.clonedeep": "^4.5.3", diff --git a/packages/plugin-metrics/package.json b/packages/plugin-metrics/package.json index 4e3b3b7737fa1..8960e3dc38f8f 100644 --- a/packages/plugin-metrics/package.json +++ b/packages/plugin-metrics/package.json @@ -1,12 +1,12 @@ { "name": "@theia/plugin-metrics", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Plugin Metrics", "dependencies": { - "@theia/core": "1.10.0", - "@theia/metrics": "1.10.0", - "@theia/plugin": "1.10.0", - "@theia/plugin-ext": "1.10.0", + "@theia/core": "1.11.0", + "@theia/metrics": "1.11.0", + "@theia/plugin": "1.11.0", + "@theia/plugin-ext": "1.11.0", "vscode-languageserver-protocol": "~3.15.3" }, "publishConfig": { @@ -42,7 +42,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/plugin/package.json b/packages/plugin/package.json index e8e6e3014eaf8..b1d334d333b60 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@theia/plugin", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Plugin API", "types": "./src/theia.d.ts", "publishConfig": { @@ -26,7 +26,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/preferences/package.json b/packages/preferences/package.json index 290ad1431fc4b..c49bec19dcdff 100644 --- a/packages/preferences/package.json +++ b/packages/preferences/package.json @@ -1,14 +1,14 @@ { "name": "@theia/preferences", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Preferences Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/userstorage": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/userstorage": "1.11.0", + "@theia/workspace": "1.11.0", "jsonc-parser": "^2.2.0" }, "publishConfig": { @@ -43,7 +43,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/preview/package.json b/packages/preview/package.json index 4d5eceb19c060..146e652509274 100644 --- a/packages/preview/package.json +++ b/packages/preview/package.json @@ -1,12 +1,12 @@ { "name": "@theia/preview", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Preview Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/mini-browser": "1.10.0", - "@theia/monaco": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/mini-browser": "1.11.0", + "@theia/monaco": "1.11.0", "@types/dompurify": "^2.0.2", "@types/highlight.js": "^10.1.0", "@types/markdown-it": "*", @@ -48,7 +48,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/process/package.json b/packages/process/package.json index 559d883d9d0ea..f6ed8148b5d00 100644 --- a/packages/process/package.json +++ b/packages/process/package.json @@ -1,9 +1,9 @@ { "name": "@theia/process", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia process support.", "dependencies": { - "@theia/core": "1.10.0", + "@theia/core": "1.11.0", "@theia/node-pty": "0.9.0-theia.6", "string-argv": "^0.1.1" }, @@ -43,7 +43,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/scm-extra/package.json b/packages/scm-extra/package.json index 4fc00da5d0659..ebeb0a853f09c 100644 --- a/packages/scm-extra/package.json +++ b/packages/scm-extra/package.json @@ -1,13 +1,13 @@ { "name": "@theia/scm-extra", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Source control extras Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/scm": "1.10.0" + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/scm": "1.11.0" }, "publishConfig": { "access": "public" @@ -41,7 +41,7 @@ "docs": "theiaext docs" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/scm/package.json b/packages/scm/package.json index 942842c83db7e..c66eac0ed69a0 100644 --- a/packages/scm/package.json +++ b/packages/scm/package.json @@ -1,12 +1,12 @@ { "name": "@theia/scm", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Source control Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/navigator": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/navigator": "1.11.0", "@types/diff": "^3.2.2", "diff": "^3.4.0", "p-debounce": "^2.1.0", @@ -45,7 +45,7 @@ "docs": "theiaext docs" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/search-in-workspace/package.json b/packages/search-in-workspace/package.json index ef01d75bbc3de..ddbe406decea5 100644 --- a/packages/search-in-workspace/package.json +++ b/packages/search-in-workspace/package.json @@ -1,14 +1,14 @@ { "name": "@theia/search-in-workspace", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Search in workspace", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/navigator": "1.10.0", - "@theia/process": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/navigator": "1.11.0", + "@theia/process": "1.11.0", + "@theia/workspace": "1.11.0", "minimatch": "^3.0.4", "vscode-ripgrep": "^1.2.4" }, @@ -45,6 +45,6 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" } } diff --git a/packages/task/package.json b/packages/task/package.json index 5d4a9d457283c..fea3346c7ac38 100644 --- a/packages/task/package.json +++ b/packages/task/package.json @@ -1,18 +1,18 @@ { "name": "@theia/task", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Task extension. This extension adds support for executing raw or terminal processes in the backend.", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/markers": "1.10.0", - "@theia/monaco": "1.10.0", - "@theia/preferences": "1.10.0", - "@theia/process": "1.10.0", - "@theia/terminal": "1.10.0", - "@theia/variable-resolver": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/markers": "1.11.0", + "@theia/monaco": "1.11.0", + "@theia/preferences": "1.11.0", + "@theia/process": "1.11.0", + "@theia/terminal": "1.11.0", + "@theia/variable-resolver": "1.11.0", + "@theia/workspace": "1.11.0", "ajv": "^6.5.3", "jsonc-parser": "^2.2.0", "p-debounce": "^2.1.0" @@ -50,7 +50,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/terminal/package.json b/packages/terminal/package.json index dbb200e3c4360..34b08b96f0ec8 100644 --- a/packages/terminal/package.json +++ b/packages/terminal/package.json @@ -1,13 +1,13 @@ { "name": "@theia/terminal", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Terminal Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/process": "1.10.0", - "@theia/workspace": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/process": "1.11.0", + "@theia/workspace": "1.11.0", "xterm": "^4.4.0", "xterm-addon-fit": "^0.3.0", "xterm-addon-search": "^0.5.0" @@ -45,7 +45,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/timeline/package.json b/packages/timeline/package.json index 7dddfcdd311bb..ae3a152aa09a5 100644 --- a/packages/timeline/package.json +++ b/packages/timeline/package.json @@ -1,9 +1,9 @@ { "name": "@theia/timeline", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Timeline Extension", "dependencies": { - "@theia/core": "1.10.0" + "@theia/core": "1.11.0" }, "publishConfig": { "access": "public" @@ -36,7 +36,7 @@ "clean": "theiaext clean" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/typehierarchy/package.json b/packages/typehierarchy/package.json index 189727243e270..be7ac9ff4f0ac 100644 --- a/packages/typehierarchy/package.json +++ b/packages/typehierarchy/package.json @@ -1,10 +1,10 @@ { "name": "@theia/typehierarchy", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Type Hierarchy Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/editor": "1.10.0", + "@theia/core": "1.11.0", + "@theia/editor": "1.11.0", "@types/uuid": "^7.0.3", "uuid": "^8.0.0" }, @@ -40,7 +40,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/userstorage/package.json b/packages/userstorage/package.json index 91fbe626bfca1..812a2c01835bf 100644 --- a/packages/userstorage/package.json +++ b/packages/userstorage/package.json @@ -1,10 +1,10 @@ { "name": "@theia/userstorage", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - User Storage Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/filesystem": "1.10.0" + "@theia/core": "1.11.0", + "@theia/filesystem": "1.11.0" }, "publishConfig": { "access": "public" @@ -38,7 +38,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/variable-resolver/package.json b/packages/variable-resolver/package.json index 63ad119f24418..bf9b707f21142 100644 --- a/packages/variable-resolver/package.json +++ b/packages/variable-resolver/package.json @@ -1,9 +1,9 @@ { "name": "@theia/variable-resolver", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Variable Resolver Extension", "dependencies": { - "@theia/core": "1.10.0" + "@theia/core": "1.11.0" }, "publishConfig": { "access": "public" @@ -43,7 +43,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/vsx-registry/package.json b/packages/vsx-registry/package.json index 098e2c03ecdc0..bdff6fbe997c9 100644 --- a/packages/vsx-registry/package.json +++ b/packages/vsx-registry/package.json @@ -1,10 +1,10 @@ { "name": "@theia/vsx-registry", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - VSX Registry", "dependencies": { - "@theia/core": "1.10.0", - "@theia/plugin-ext-vscode": "1.10.0", + "@theia/core": "1.11.0", + "@theia/plugin-ext-vscode": "1.11.0", "@types/bent": "^7.0.1", "@types/sanitize-html": "^1.13.31", "@types/showdown": "^1.7.1", @@ -50,7 +50,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" diff --git a/packages/workspace/package.json b/packages/workspace/package.json index 5b62813402c17..48a915dc8b7c2 100644 --- a/packages/workspace/package.json +++ b/packages/workspace/package.json @@ -1,11 +1,11 @@ { "name": "@theia/workspace", - "version": "1.10.0", + "version": "1.11.0", "description": "Theia - Workspace Extension", "dependencies": { - "@theia/core": "1.10.0", - "@theia/filesystem": "1.10.0", - "@theia/variable-resolver": "1.10.0", + "@theia/core": "1.11.0", + "@theia/filesystem": "1.11.0", + "@theia/variable-resolver": "1.11.0", "ajv": "^6.5.3", "jsonc-parser": "^2.2.0", "moment": "2.24.0", @@ -44,7 +44,7 @@ "test": "theiaext test" }, "devDependencies": { - "@theia/ext-scripts": "1.10.0" + "@theia/ext-scripts": "1.11.0" }, "nyc": { "extends": "../../configs/nyc.json" From f8bcc19eba884cbd64112aeb691e8c97aad87197 Mon Sep 17 00:00:00 2001 From: alexander gilin Date: Thu, 11 Feb 2021 09:59:20 +0200 Subject: [PATCH 8/9] [vscode] support for 'pathSeparator' variable substitution, where ${pathSeparator} - / on macOS or linux, \\ on Windows Signed-off-by: Alex Gilin --- .../src/browser/common-variable-contribution.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/variable-resolver/src/browser/common-variable-contribution.ts b/packages/variable-resolver/src/browser/common-variable-contribution.ts index 318f87d3c32a3..8afac0905435d 100644 --- a/packages/variable-resolver/src/browser/common-variable-contribution.ts +++ b/packages/variable-resolver/src/browser/common-variable-contribution.ts @@ -16,8 +16,10 @@ import { injectable, inject } from 'inversify'; import { VariableContribution, VariableRegistry } from './variable'; +import { ApplicationServer } from '@theia/core/lib/common/application-protocol'; import { EnvVariablesServer } from '@theia/core/lib/common/env-variables'; import { CommandService } from '@theia/core/lib/common/command'; +import { OS } from '@theia/core/lib/common/os'; import { PreferenceService } from '@theia/core/lib/browser/preferences/preference-service'; import { ResourceContextKey } from '@theia/core/lib/browser/resource-context-key'; import { VariableInput } from './variable-input'; @@ -46,12 +48,22 @@ export class CommonVariableContribution implements VariableContribution { @inject(QuickPickService) protected readonly quickPickService: QuickPickService; + @inject(ApplicationServer) + protected readonly appServer: ApplicationServer; + async registerVariables(variables: VariableRegistry): Promise { - const execPath = await this.env.getExecPath(); + const [execPath, backendOS] = await Promise.all([ + this.env.getExecPath(), + this.appServer.getBackendOS() + ]); variables.registerVariable({ name: 'execPath', resolve: () => execPath }); + variables.registerVariable({ + name: 'pathSeparator', + resolve: () => backendOS === OS.Type.Windows ? '\\' : '/' + }); variables.registerVariable({ name: 'env', resolve: async (_, envVariableName) => { From ab74a91f3f7e83c2e0e5ba02cda427bf7127cf9b Mon Sep 17 00:00:00 2001 From: Kenneth Marut Date: Tue, 10 Nov 2020 00:08:24 +0100 Subject: [PATCH 9/9] File dialog enhancements - Add text input to locationList Renderer - Add 'navigate upward' icon - Fix icon focus behavior when disabled Signed-off-by: Kenneth Marut --- CHANGELOG.md | 10 +- packages/core/src/browser/style/tabs.css | 3 +- .../browser/file-dialog/file-dialog-model.ts | 5 + .../src/browser/file-dialog/file-dialog.ts | 75 +++++- .../src/browser/file-tree/file-tree-model.ts | 2 + .../browser/location/location-renderer.tsx | 244 +++++++++++++++++- .../src/browser/style/file-dialog.css | 87 ++++++- 7 files changed, 394 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fbb6bf162b8f9..112cd00b621ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,13 @@ # Change Log + +## v1.12.0 + +- [filesystem] add text input and navigate up icon to file dialog [#8748](https://github.com/eclipse-theia/theia/pull/8748) + +[Breaking Changes:](#breaking_changes_1.12.0) + +- [filesystem] `FileDialog` and `LocationListRenderer` now require `FileService` to be passed into constructor for text-based file dialog navigation in browser [#8748](https://github.com/eclipse-theia/theia/pull/8748) + ## v1.11.0 - 2/25/2021 - [api-samples] added example to echo the currently supported vscode API version [#8191](https://github.com/eclipse-theia/theia/pull/8191) @@ -40,7 +49,6 @@ - [task] updated logic to activate corresponding terminal when using the `show running tasks` action [#9016](https://github.com/eclipse-theia/theia/pull/9016) - [vsx-registry] added API compatibility handling when installing extensions through the 'extensions-view' [#8191](https://github.com/eclipse-theia/theia/pull/8191) - [Breaking Changes:](#breaking_changes_1.11.0) - [core] updated `SearchBox.input` field type from `HTMLInputElement` to `HTMLSpanElement` [#9005](https://github.com/eclipse-theia/theia/pull/9005) diff --git a/packages/core/src/browser/style/tabs.css b/packages/core/src/browser/style/tabs.css index 80e5c437aa031..112fa4c685405 100644 --- a/packages/core/src/browser/style/tabs.css +++ b/packages/core/src/browser/style/tabs.css @@ -8,6 +8,7 @@ --theia-private-horizontal-tab-scrollbar-rail-height: 7px; --theia-private-horizontal-tab-scrollbar-height: 5px; --theia-tabbar-toolbar-z-index: 1001; + --theia-toolbar-active-transform-scale: 1.272019649; } /*----------------------------------------------------------------------------- @@ -352,7 +353,7 @@ body.theia-editor-highlightModifiedTabs } .p-TabBar-toolbar .item.enabled.active { - transform: scale(1.272019649); + transform: scale(var(--theia-toolbar-active-transform-scale)); } .p-TabBar-toolbar .item.toggled { diff --git a/packages/filesystem/src/browser/file-dialog/file-dialog-model.ts b/packages/filesystem/src/browser/file-dialog/file-dialog-model.ts index 42bcfd39061e1..29f57467b19cc 100644 --- a/packages/filesystem/src/browser/file-dialog/file-dialog-model.ts +++ b/packages/filesystem/src/browser/file-dialog/file-dialog-model.ts @@ -88,4 +88,9 @@ export class FileDialogModel extends FileTreeModel { private isFileStatNodeSelectable(node: FileStatNode): boolean { return !(!node.fileStat.isDirectory && this._disableFileSelection); } + + canNavigateUpward(): boolean { + const treeRoot = this.tree.root; + return FileStatNode.is(treeRoot) && !treeRoot.uri.path.isRoot; + } } diff --git a/packages/filesystem/src/browser/file-dialog/file-dialog.ts b/packages/filesystem/src/browser/file-dialog/file-dialog.ts index fac4cac3bceb9..72935ef80371d 100644 --- a/packages/filesystem/src/browser/file-dialog/file-dialog.ts +++ b/packages/filesystem/src/browser/file-dialog/file-dialog.ts @@ -26,6 +26,7 @@ import { FileDialogWidget } from './file-dialog-widget'; import { FileDialogTreeFiltersRenderer, FileDialogTreeFilters } from './file-dialog-tree-filters-renderer'; import URI from '@theia/core/lib/common/uri'; import { Panel } from '@phosphor/widgets'; +import { FileService } from '../file-service'; export const OpenFileDialogFactory = Symbol('OpenFileDialogFactory'); export interface OpenFileDialogFactory { @@ -43,6 +44,7 @@ export const NAVIGATION_PANEL_CLASS = 'theia-NavigationPanel'; export const NAVIGATION_BACK_CLASS = 'theia-NavigationBack'; export const NAVIGATION_FORWARD_CLASS = 'theia-NavigationForward'; export const NAVIGATION_HOME_CLASS = 'theia-NavigationHome'; +export const NAVIGATION_UP_CLASS = 'theia-NavigationUp'; export const NAVIGATION_LOCATION_LIST_PANEL_CLASS = 'theia-LocationListPanel'; export const FILTERS_PANEL_CLASS = 'theia-FiltersPanel'; @@ -54,6 +56,7 @@ export const FILENAME_LABEL_CLASS = 'theia-FileNameLabel'; export const FILENAME_TEXTFIELD_CLASS = 'theia-FileNameTextField'; export const CONTROL_PANEL_CLASS = 'theia-ControlPanel'; +export const TOOLBAR_ITEM_TRANSFORM_TIMEOUT = 100; export class FileDialogProps extends DialogProps { @@ -116,13 +119,15 @@ export abstract class FileDialog extends AbstractDialog { protected readonly back: HTMLSpanElement; protected readonly forward: HTMLSpanElement; protected readonly home: HTMLSpanElement; + protected readonly up: HTMLSpanElement; protected readonly locationListRenderer: LocationListRenderer; protected readonly treeFiltersRenderer: FileDialogTreeFiltersRenderer | undefined; protected readonly treePanel: Panel; constructor( @inject(FileDialogProps) readonly props: FileDialogProps, - @inject(FileDialogWidget) readonly widget: FileDialogWidget + @inject(FileDialogWidget) readonly widget: FileDialogWidget, + @inject(FileService) readonly fileService: FileService ) { super(props); this.treePanel = new Panel(); @@ -145,8 +150,13 @@ export abstract class FileDialog extends AbstractDialog { navigationPanel.appendChild(this.home = createIconButton('fa', 'fa-home')); this.home.classList.add(NAVIGATION_HOME_CLASS); this.home.title = 'Go To Initial Location'; + navigationPanel.appendChild(this.up = createIconButton('fa', 'fa-level-up')); + this.up.classList.add(NAVIGATION_UP_CLASS); + this.up.title = 'Navigate Up One Directory'; - this.locationListRenderer = this.createLocationListRenderer(); + const locationListRendererHost = document.createElement('div'); + this.locationListRenderer = this.createLocationListRenderer(locationListRendererHost); + this.toDispose.push(this.locationListRenderer); this.locationListRenderer.host.classList.add(NAVIGATION_LOCATION_LIST_PANEL_CLASS); navigationPanel.appendChild(this.locationListRenderer.host); @@ -157,8 +167,8 @@ export abstract class FileDialog extends AbstractDialog { return this.widget.model; } - protected createLocationListRenderer(): LocationListRenderer { - return new LocationListRenderer(this.model); + protected createLocationListRenderer(host?: HTMLElement): LocationListRenderer { + return new LocationListRenderer(this.model, this.fileService, host); } protected createFileTreeFiltersRenderer(): FileDialogTreeFiltersRenderer | undefined { @@ -176,6 +186,7 @@ export abstract class FileDialog extends AbstractDialog { setEnabled(this.home, !!this.model.initialLocation && !!this.model.location && this.model.initialLocation.toString() !== this.model.location.toString()); + setEnabled(this.up, this.model.canNavigateUpward()); this.locationListRenderer.render(); if (this.treeFiltersRenderer) { @@ -185,6 +196,28 @@ export abstract class FileDialog extends AbstractDialog { this.widget.update(); } + protected handleEnter(event: KeyboardEvent): boolean | void { + if (event.target instanceof HTMLTextAreaElement || this.targetIsDirectoryInput(event.target) || this.targetIsInputToggle(event.target)) { + return false; + } + this.accept(); + } + + protected handleEscape(event: KeyboardEvent): boolean | void { + if (event.target instanceof HTMLTextAreaElement || this.targetIsDirectoryInput(event.target)) { + return false; + } + this.close(); + } + + protected targetIsDirectoryInput(target: EventTarget | null): boolean { + return target instanceof HTMLInputElement && target.classList.contains(LocationListRenderer.Styles.LOCATION_TEXT_INPUT_CLASS); + } + + protected targetIsInputToggle(target: EventTarget | null): boolean { + return target instanceof HTMLSpanElement && target.classList.contains(LocationListRenderer.Styles.LOCATION_INPUT_TOGGLE_CLASS); + } + protected appendFiltersPanel(): void { if (this.treeFiltersRenderer) { const filtersPanel = document.createElement('div'); @@ -216,16 +249,36 @@ export abstract class FileDialog extends AbstractDialog { this.appendCloseButton('Cancel'); this.appendAcceptButton(this.getAcceptButtonLabel()); - this.addKeyListener(this.back, Key.ENTER, () => this.model.navigateBackward(), 'click'); - this.addKeyListener(this.forward, Key.ENTER, () => this.model.navigateForward(), 'click'); + this.addKeyListener(this.back, Key.ENTER, () => { + this.addTransformEffectToIcon(this.back); + this.model.navigateBackward(); + }, 'click'); + + this.addKeyListener(this.forward, Key.ENTER, () => { + this.addTransformEffectToIcon(this.forward); + this.model.navigateForward(); + }, 'click'); this.addKeyListener(this.home, Key.ENTER, () => { + this.addTransformEffectToIcon(this.home); if (this.model.initialLocation) { this.model.location = this.model.initialLocation; } }, 'click'); + this.addKeyListener(this.up, Key.ENTER, () => { + this.addTransformEffectToIcon(this.up); + if (this.model.location) { + this.model.location = this.model.location.parent; + } + }, 'click'); super.onAfterAttach(msg); } + protected addTransformEffectToIcon(element: HTMLSpanElement): void { + const icon = element.getElementsByTagName('i')[0]; + icon.classList.add('active'); + setTimeout(() => icon.classList.remove('active'), TOOLBAR_ITEM_TRANSFORM_TIMEOUT); + } + protected abstract getAcceptButtonLabel(): string; protected onActivateRequest(msg: Message): void { @@ -239,9 +292,10 @@ export class OpenFileDialog extends FileDialog> { constructor( @inject(OpenFileDialogProps) readonly props: OpenFileDialogProps, - @inject(FileDialogWidget) readonly widget: FileDialogWidget + @inject(FileDialogWidget) readonly widget: FileDialogWidget, + @inject(FileService) readonly fileService: FileService ) { - super(props, widget); + super(props, widget, fileService); if (props.canSelectFiles !== undefined) { this.widget.disableFileSelection = !props.canSelectFiles; } @@ -288,9 +342,10 @@ export class SaveFileDialog extends FileDialog { constructor( @inject(SaveFileDialogProps) readonly props: SaveFileDialogProps, - @inject(FileDialogWidget) readonly widget: FileDialogWidget + @inject(FileDialogWidget) readonly widget: FileDialogWidget, + @inject(FileService) readonly fileService: FileService ) { - super(props, widget); + super(props, widget, fileService); widget.addClass(SAVE_DIALOG_CLASS); } diff --git a/packages/filesystem/src/browser/file-tree/file-tree-model.ts b/packages/filesystem/src/browser/file-tree/file-tree-model.ts index 1f8440e41157d..b4dd92bf41b3a 100644 --- a/packages/filesystem/src/browser/file-tree/file-tree-model.ts +++ b/packages/filesystem/src/browser/file-tree/file-tree-model.ts @@ -61,6 +61,8 @@ export class FileTreeModel extends TreeModelImpl implements LocationService { const node = DirNode.createRoot(fileStat); this.navigateTo(node); } + }).catch(() => { + // no-op, allow failures for file dialog text input }); } else { this.navigateTo(undefined); diff --git a/packages/filesystem/src/browser/location/location-renderer.tsx b/packages/filesystem/src/browser/location/location-renderer.tsx index 1ae65e21ac259..1aa8690c31e08 100644 --- a/packages/filesystem/src/browser/location/location-renderer.tsx +++ b/packages/filesystem/src/browser/location/location-renderer.tsx @@ -18,13 +18,71 @@ import URI from '@theia/core/lib/common/uri'; import { LocationService } from './location-service'; import { ReactRenderer } from '@theia/core/lib/browser/widgets/react-renderer'; import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import { FileService } from '../file-service'; +import { DisposableCollection, Emitter } from '@theia/core/lib/common'; +interface AutoSuggestDataEvent { + parent: string; + children: string[]; +} + +class ResolvedDirectoryCache { + protected pendingResolvedDirectories = new Map>(); + protected cachedDirectories = new Map(); + + protected directoryResolvedEmitter = new Emitter(); + readonly onDirectoryDidResolve = this.directoryResolvedEmitter.event; + + constructor(protected readonly fileService: FileService) { } + + tryResolveChildDirectories(inputAsURI: URI): string[] | undefined { + const parentDirectory = inputAsURI.path.dir.toString(); + const cachedDirectories = this.cachedDirectories.get(parentDirectory); + const pendingDirectories = this.pendingResolvedDirectories.get(parentDirectory); + if (cachedDirectories) { + return cachedDirectories; + } else if (!pendingDirectories) { + this.pendingResolvedDirectories.set(parentDirectory, this.createResolutionPromise(parentDirectory)); + } + return undefined; + } + + protected async createResolutionPromise(directoryToResolve: string): Promise { + return this.fileService.resolve(new URI(directoryToResolve)).then(({ children }) => { + if (children) { + const childDirectories = children.filter(child => child.isDirectory) + .map(directory => `${directory.resource.path}/`); + this.cachedDirectories.set(directoryToResolve, childDirectories); + this.directoryResolvedEmitter.fire({ parent: directoryToResolve, children: childDirectories }); + } + }).catch(e => { + // no-op + }); + } +} export class LocationListRenderer extends ReactRenderer { + protected directoryCache: ResolvedDirectoryCache; + protected toDisposeOnNewCache = new DisposableCollection(); protected _drives: URI[] | undefined; + protected _doShowTextInput = false; + get doShowTextInput(): boolean { + return this._doShowTextInput; + } + set doShowTextInput(doShow: boolean) { + this._doShowTextInput = doShow; + if (doShow) { + this.initResolveDirectoryCache(); + } + } + protected lastUniqueTextInputLocation: URI | undefined; + protected previousAutocompleteMatch: string; + protected doAttemptAutocomplete = true; constructor( protected readonly service: LocationService, + protected readonly fileService: FileService, host?: HTMLElement ) { super(host); @@ -32,18 +90,113 @@ export class LocationListRenderer extends ReactRenderer { } render(): void { - super.render(); + ReactDOM.render(this.doRender(), this.host, this.doAfterRender); + } + + protected initResolveDirectoryCache(): void { + this.toDisposeOnNewCache.dispose(); + this.directoryCache = new ResolvedDirectoryCache(this.fileService); + this.toDisposeOnNewCache.push(this.directoryCache.onDirectoryDidResolve(({ parent, children }) => { + if (this.locationTextInput) { + const inputParent = (new URI(this.locationTextInput.value)).path.dir.toString(); + if (inputParent === parent) { + this.tryRenderFirstMatch(this.locationTextInput, children); + } + } + })); + } + + protected doAfterRender = (): void => { const locationList = this.locationList; + const locationListTextInput = this.locationTextInput; if (locationList) { const currentLocation = this.service.location; locationList.value = currentLocation ? currentLocation.toString() : ''; + } else if (locationListTextInput) { + locationListTextInput.focus(); } - } + }; protected readonly handleLocationChanged = (e: React.ChangeEvent) => this.onLocationChanged(e); - protected doRender(): React.ReactNode { + protected readonly handleTextInputOnChange = (e: React.ChangeEvent) => this.trySuggestDirectory(e); + protected readonly handleTextInputKeyDown = (e: React.KeyboardEvent) => this.handleControlKeys(e); + protected readonly handleIconKeyDown = (e: React.KeyboardEvent) => this.toggleInputOnKeyDown(e); + protected readonly handleTextInputOnBlur = () => this.toggleToSelectInput(); + protected readonly handleTextInputMouseDown = (e: React.MouseEvent) => this.toggleToTextInputOnMouseDown(e); + + protected doRender(): React.ReactElement { + return ( + <> + {this.renderInputIcon()} + {this.doShowTextInput + ? this.renderTextInput() + : this.renderSelectInput() + } + + ); + } + + protected renderInputIcon(): React.ReactNode { + return ( + + + + ); + } + + protected renderTextInput(): React.ReactNode { + return ( + + ); + } + + protected renderSelectInput(): React.ReactNode { const options = this.collectLocations().map(value => this.renderLocation(value)); - return ; + return ( + + ); + } + + protected toggleInputOnKeyDown(e: React.KeyboardEvent): void { + if (e.key === 'Enter') { + this.doShowTextInput = true; + this.render(); + } + } + + protected toggleToTextInputOnMouseDown(e: React.MouseEvent): void { + if (e.currentTarget.id === 'select-input') { + e.preventDefault(); + this.doShowTextInput = true; + this.render(); + } + } + + protected toggleToSelectInput(): void { + if (this.doShowTextInput) { + this.doShowTextInput = false; + this.render(); + } } /** @@ -104,9 +257,69 @@ export class LocationListRenderer extends ReactRenderer { if (locationList) { const value = locationList.value; const uri = new URI(value); - this.service.location = uri; + this.trySetNewLocation(uri); + e.preventDefault(); + e.stopPropagation(); + } + } + + protected trySetNewLocation(newLocation: URI): void { + if (this.lastUniqueTextInputLocation === undefined) { + this.lastUniqueTextInputLocation = this.service.location; + } + // prevent consecutive repeated locations from being added to location history + if (this.lastUniqueTextInputLocation?.path.toString() !== newLocation.path.toString()) { + this.lastUniqueTextInputLocation = newLocation; + this.service.location = newLocation; + } + } + + protected trySuggestDirectory(e: React.ChangeEvent): void { + if (this.doAttemptAutocomplete) { + const inputElement = e.currentTarget; + const { value } = inputElement; + if (value.slice(-1) !== '/') { + const valueAsURI = new URI(value); + const autocompleteDirectories = this.directoryCache.tryResolveChildDirectories(valueAsURI); + if (autocompleteDirectories) { + this.tryRenderFirstMatch(inputElement, autocompleteDirectories); + } + } + } + } + + protected tryRenderFirstMatch(inputElement: HTMLInputElement, children: string[]): void { + const { value, selectionStart } = inputElement; + if (this.locationTextInput) { + const firstMatch = children?.find(child => child.includes(value)); + if (firstMatch) { + this.locationTextInput.value = firstMatch; + this.locationTextInput.selectionStart = selectionStart; + this.locationTextInput.selectionEnd = firstMatch.length; + } + } + } + + protected handleControlKeys(e: React.KeyboardEvent): void { + this.doAttemptAutocomplete = e.key !== 'Backspace'; + if (e.key === 'Enter') { + const locationTextInput = this.locationTextInput; + if (locationTextInput) { + // remove extra whitespace and any trailing slashes or periods. + const sanitizedInput = locationTextInput.value.trim().replace(/[\/\\.]*$/, ''); + const uri = new URI(sanitizedInput); + this.trySetNewLocation(uri); + this.toggleToSelectInput(); + } + } else if (e.key === 'Escape') { + this.toggleToSelectInput(); + } else if (e.key === 'Tab') { + e.preventDefault(); + const textInput = this.locationTextInput; + if (textInput) { + textInput.selectionStart = textInput.value.length; + } } - e.preventDefault(); e.stopPropagation(); } @@ -118,12 +331,31 @@ export class LocationListRenderer extends ReactRenderer { return undefined; } + get locationTextInput(): HTMLInputElement | undefined { + const locationTextInput = this.host.getElementsByClassName(LocationListRenderer.Styles.LOCATION_TEXT_INPUT_CLASS)[0]; + if (locationTextInput instanceof HTMLInputElement) { + return locationTextInput; + } + return undefined; + } + + dispose(): void { + super.dispose(); + this.toDisposeOnNewCache.dispose(); + } } export namespace LocationListRenderer { export namespace Styles { export const LOCATION_LIST_CLASS = 'theia-LocationList'; + export const LOCATION_INPUT_TOGGLE_CLASS = 'theia-LocationInputToggle'; + export const LOCATION_TEXT_INPUT_CLASS = 'theia-LocationTextInput'; + } + + export namespace Tooltips { + export const TOGGLE_TEXT_INPUT = 'Switch to text-based input'; + export const TOGGLE_SELECT_INPUT = 'Switch to location list'; } export interface Location { diff --git a/packages/filesystem/src/browser/style/file-dialog.css b/packages/filesystem/src/browser/style/file-dialog.css index bcb4963ef5476..d63a0d3fe5832 100644 --- a/packages/filesystem/src/browser/style/file-dialog.css +++ b/packages/filesystem/src/browser/style/file-dialog.css @@ -14,6 +14,14 @@ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 ********************************************************************************/ +:root { + --theia-private-file-dialog-input-height: 21px; + --theia-private-location-list-panel-left: 82px; + --theia-private-location-list-panel-width: 417px; + --theia-private-navigation-panel-icon-size: 21px; + --theia-private-navigation-panel-line-height: 23px; +} + /* * Open and Save file dialogs */ @@ -56,23 +64,45 @@ /* * Navigation panel items */ - -.dialogContent .theia-NavigationBack, -.dialogContent .theia-NavigationForward, -.dialogContent .theia-NavigationHome { + +.dialogContent .theia-NavigationPanel span + { position: absolute; top: 0px; - line-height: 23px; + line-height: var(--theia-private-navigation-panel-line-height); cursor: pointer; + width: var(--theia-private-navigation-panel-icon-size); + text-align: center; +} + +.dialogContent .theia-NavigationPanel span:not(.theia-mod-disabled) i.active +{ + transform: scale(var(--theia-toolbar-active-transform-scale)); +} + +.dialogContent .theia-NavigationPanel span:focus +{ outline: none; + box-shadow: none; +} + +.dialogContent .theia-NavigationPanel span:focus-visible +{ + outline-width: 1px; + outline-style: solid; + outline-offset: -1px; + opacity: 1 !important; + outline-color: var(--theia-focusBorder); } -.dialogContent .theia-NavigationBack:focus, -.dialogContent .theia-NavigationForward:focus, -.dialogContent .theia-NavigationHome:focus { +.dialogContent .theia-NavigationBack.theia-mod-disabled:focus, +.dialogContent .theia-NavigationForward.theia-mod-disabled:focus, +.dialogContent .theia-NavigationHome.theia-mod-disabled:focus, +.dialogContent .theia-NavigationUp.theia-mod-disabled:focus +{ outline: none; border: none; - box-shadow: none; + opacity: var(--theia-mod-disabled-opacity) !important; } .dialogContent .theia-NavigationBack { @@ -87,15 +117,44 @@ left: 41px; } +.dialogContent .theia-NavigationUp { + left: 61px; +} + .dialogContent .theia-LocationListPanel { position: absolute; - left: 72px; + display: flex; top: 1px; + left: var(--theia-private-location-list-panel-left); + width: var(--theia-private-location-list-panel-width); + height: var(--theia-private-file-dialog-input-height); } -.dialogContent .theia-LocationList { - width: 427px; - height: 21px; +.dialogContent .theia-LocationInputToggle { + text-align: center; + left: 0; + width: var(--theia-private-navigation-panel-icon-size); + height: var(--theia-private-navigation-panel-icon-size); + z-index: 1; +} + +.dialogContent .theia-LocationList, +.dialogContent .theia-LocationTextInput +{ + box-sizing: content-box; + padding: unset; + position: absolute; + top: 0; + left: 0; + height: var(--theia-private-file-dialog-input-height); + border: var(--theia-border-width) solid var(--theia-input-border); +} + +.dialogContent .theia-LocationList, +.dialogContent .theia-LocationTextInput +{ + padding-left: var(--theia-private-navigation-panel-icon-size); + width: calc(100% - var(--theia-private-navigation-panel-icon-size)); } /* @@ -117,7 +176,7 @@ .dialogContent .theia-FileTreeFiltersList { width: 427px; - height: 21px; + height: var(--theia-private-file-dialog-input-height); } /*