doc/changelogs/CHANGELOG-2020.md
download-plugins script #8798download-plugins script to report errors in case of unsupported file types #8797workbench.editor.closeOnFileDelete preference #8731upload to return FileUploadResult #8766{{hostname}} as a pattern for THEIA_MINI_BROWSER_HOST_PATTERN #8865workbench.extensions.installExtension #8745rfc3986 #8832reveal() method for tree-views #8783plugin-ext dependencies #8831set html to pass the object field instead of method argument #8833search.searchOnEditorModification preference #8765search.searchOnType preference #8773<a name="breaking_changes_1.9.0">Breaking Changes:</a>
FrontendApplicationContribution.onWillStop is now called for every contribution and will not bail early #8863
application.confirmExit is set to never.download:plugins] errors when downloading plugins now result in build failures, unless the --ignore-errors flag is passed #8788LocalDirectoryPluginDeployerResolver has moved from packages/plugin-ext/src/main/node/resolvers/plugin-local-dir-resolver.ts to packages/plugin-ext/src/main/node/resolvers/local-file-plugin-deployer-resolver.ts and now derives from LocalPluginDeployerResolver #8745TreeViewsMain.$reveal second parameter from string element id to string array element parent chain #8783/plugin/:path(*) endpoint #8831THEIA_HOSTS environment variable (browser applications only) #8759
Origin header does not match the list of hosts it will be refused.80 nor 443.app.some.domain.com,app.other.domain:12345.<a name="breaking_changes_1.8.1">Breaking Changes:</a>
ElectronMessagingContribution, token validation is now done in ElectronTokenValidator as a WsRequestValidatorContribution #8759{{uuid}}.mini-browser.{{hostname}} by default.THEIA_MINI_BROWSER_HOST_PATTERN environment variable.saveable test suite #8736monaco-editor.* sourcemaps when debugging #8744anser import workaround #8741@theia/cli electron configurations #8699BackendApplicationContribution #8686MenuContribution #8715MessageService #8688PreferenceContribution #8677Task API #8695TreeDecorator and TreeDecoratorService #8698editor.semanticHighlighting.enabled by default #8593application.confirmExit preventing the app from closing #8732.git folder #8721viewId as a progress location #8700activeColorTheme and onDidChangeActiveColorTheme API #8710Authentication API #8725eslint and peer-dependencies to latest versions #8770yargs dependency #8711WorkspaceFrontendContribution #8734<a name="breaking_changes_1.8.0">Breaking Changes:</a>
attachWillPreventUnload method from the Electron main application. The confirmExit logic is handled on the frontend #8732@theia/process and replaced its usage by node's child_process API #8721<a name="release_milestone_1.7.0">1.7.0 Release Milestone</a>
Save without Formatting command #8543CommandQuickOpenItem #8648isWeb context when clause #8530keyboard.dispatch preference #8609UriAwareCommandHandler preventing the duplication of passed arguments #8592Save All to only format dirty editors #8554Debug main menu item to Run #8653FileService and FileSystemProvider #8596Keybinding and KeybindingContribution #8637LabelProvider and LabelProviderContribution #8569PreferenceService #8612WidgetManager and WidgetOpenHandler #8644@theia/preview extension #8625showTextDocument behavior #8588SIGPIPE errors #8661FileSystemWatcherService component that should be a singleton centralizing watch requests for all clients.FileSystemWatcherServiceDispatcher to register yourself and listen to file change events.commit details and diff view rendering to respect list and tree modes [#8084] (https://github.com/eclipse-theia/theia/pull/8084)scrElement usage to target #8663Save All command to format all open editors #8551doOpenNode implementation for hidden nodes #8659environmentVariableCollection to PluginContext #8523onStartupFinished plugin activation event #8525deprecated strikethrough for completion items #85531.50.0 #8617innerHTML #8388CodeEditorWidget #8672Comments API to align with VS Code #8539workspaceFolders API to return undefined when no folders are opened #8641no-tabs rule #8630@types/node@12 typings #8556includeAllVersions #8607sortBy #8607sortOrder #8607search query when multiple search parameters are used #8607query API endpoint #8570<a name="breaking_changes_1.7.0">Breaking Changes:</a>
true to false #8479NsfwFileSystemWatcherServer is deprecated and no longer used #8546AnalyticsFromRequests.succesfulResponses to AnalyticsFromRequests.successfulResponses #8560CodeEditorWidgetUti.getResourceUri is no longer exportable #8672tab-bar context-menus to open without the need to be activated beforehand #6965rebuild:electron command for the drivelist native module #8454Inotify handles, along with instructions on how to fix it #8458FileSystem binding to return an instantiated instance rather than the class #8507output-widget.tsx to output-widget.ts #8499CompletionItemTag enum #8517DebugConsoleMode enum #8513authentication plugin API #8402revealInExplorer command #8496globalState/workspaceState #8424vscode.findFiles API to handle ignored files #8452files.exclude preference when searching #8433@theia/timeline extension #7997<a name="breaking_changes_1.6.0">Breaking Changes:</a>
tab-bars now require an Event to be passed to execute commands without activating the shell tab-bar #6965
TabBarRenderer.handleContextMenuEvent() to support triggering context-menus without the need to activate the widget.Event should be passed, else commands will not work correctly as they do no longer rely on the activation of tab-bars.findTitle() and findTabBar() moving them from common-frontend-contribution.ts to application-shell.ts #6965download:plugins script to use decompress #8315badge count for the problems-view #8156badge count tab decorations #8156DefaultUriLabelProviderContribution #8281badge count for active debug sessions #8342node-gyp to 7.0.0 #8216autoSave is enabled #83290.20.0 #8010badge count for dirty editors in the explorer #8316open command to only be enabled for files #8228preserveFocus to OutputChannel#show to reveal but not activate the widget #8243ResourceLabelFormatter API #8187vscode.workspace.fs API #7908local-dir path resolution #8385onFileSystem event as supported #8320collapse-all command and toolbar item #8247badge count for the scm-view #8156stylesheet.innerHTML #8397decompress to fix the known security vulnerability #8924
scm #8231
<a name="1_5_0_electron_main_extension"></a>inversify. Added new electronMain extension points to provide inversify container modules. #8076<a name="breaking_changes_1.5.0">Breaking Changes:</a>
[core] removed KeybindingRegistry#getScopedKeybindingsForCommand #8283
[application-package] removed isOutdated from ExtensionPackage #8295
[application-package] removed getLatestVersion from ExtensionPackage #8295
[application-package] removed getVersionRange from ExtensionPackage #8295
[application-package] removed resolveVersionRange from ExtensionPackage #8295
[output] OutputWidget#setInput has been removed. The Output view automatically shows the channel when calling OutputChannel#show. Moved the OutputCommands namespace from the output-contribution to its dedicated output-commands module to overcome a DI cycle. #8243
[example-app] updated yarn.lock so that the latest version of vscode-ripgrep is used (v1.8.0). This way we can benefit from the recently added support for it using proxy settings when fetching the platform-specific ripgrep executable, after npm package install. This should make it a lot easier to build our example application in corporate settings, behind a firewall. #8280
vscode-ripgrep, you should do similarly in your own yarn.lock.
<a name="1.5.0_deprecate_file_system"></a>[filesystem] FileSystem and FileSystemWatcher services are deprecated #7908
FileSystem implementation. One has to use Node.js APIs instead.FileService should be used instead. It was ported from VS Code for compatibility with VS Code extensions.EnvVariableServer should be used instead to access the current user home and available drives.
<a name="1.5.0_userstorage_as_fs_provider"></a>[userstorage] UserStorageService was replaced by the user data fs provider #7908
<a name="1.5.0_webview_resource_streaming"></a>
[webview] webview resources are streamed instead of loading one by one the entire content and blocking the web socket #8359
WebviewResourceLoader is removed. One should change DiskFileSystemProvider to customize resource loading instead.
<a name="1.5.0_root_user_storage_uri"></a>[user-storage] settings URI must start with /user root to satisfy expectations of FileService #8313
[electron] Removed the set-window-options and get-persisted-window-options-additions Electron IPC handlers from the Electron Main process.
<a name="1.5.0_non_blocking_bulk_edit"></a>
[monaco] MonacoWorkspace.applyBulkEdit does not open any editors anymore to avoid blocking #8329
MonacoWorkspace.openEditors and MonacoWorkspace.toTextEditWithEditor are removed.
<a name="1.5.0_declarative_default_themes"></a>[theming] Default color and icon themes should be declared in the application package.json. #8381
"theia": {
"frontend": {
"config": {
"defaultTheme": "light",
"defaultIconTheme": "vs-seti"
}
}
},
ThemeService and IconThemeService don't allow to change the default color or icon theme anymore.
<a name="1_5_0_drop_node_10_support"></a>[repo] support for Node 10 is dropped. #8290
12.x is required when building.electron (Node.js 12.14.1).12.x #7968
12.x to build Theia from sources. The recommended minimum version is aligned with electron (Node.js 12.14.1).10.x will be dropped in one of the forthcoming releases.select and run debug statusbar item #8134save when starting a debug session #8115save all when turning auto-save on #8163problems.autoReveal preference to control sync between editors and the problem-view #8172copy relative path to the explorer context-menu and command palette #8092copy all context-menu item for the output-view #8057copyRelativeFilePath #8092resolveDebugConfigurationWithSubstitutedVariables API #8253vscode.workspace.findTextInFiles API #7868pluginPath #8045Command type in statusbar items #8253vsix without publishers to be loaded #8196vscode-json-languageserver #8132onDidEndTaskProcess was not fired for plugins when task ended #8141licenseUrl link for builtin and installed extensions #8095<a name="breaking_changes_1.4.0">Breaking Changes:</a>
matchKeybiding to matchKeybinding) in KeybindingRegistry #8193PreferencesWidget.COMMAND_LABEL #8249preference-contribution.ts to preferences-contribution.ts #8237rezize to resize) in TerminalWidget #8193
<a name="1_4_0_replace_json"></a>@theia/json Theia extension with vscode.json-language-features VS Code extension #8112
JsonSchemaContribution Theia contribution point.vscode.json-language-features #8112
@theia/languages extension is deprecated, use VS Code extensions to provide language smartness:
https://code.visualstudio.com/api/language-extensions/language-server-extension-guide #8112theiaPlugins field #8058copy path command #7934vscode-languageserver-protocol dependency #8036input and textArea fields #7943messaging #8008react and react-dom to v16.8 #7883nsfw to downstream NsfwFilesystemWatcher #7465FileDialog #8073isInSync method #8044clear-all command for the problems-view #8002vscode-builtin-css-language-features #7972vscode-builtin-html-language-features #7972toOpenModel method #8024copyFilePath #7934env.uiKind API #8038workbench.view.explorer command #7965Task2 class #8000open view menu #8034scm tree to sort results correctly #8048detail property to the task configuration schema #8000RevealKind and PanelKind enums #7982Breaking Changes:
ApplicationShell.TrackableWidgetProvider.getTrackableWidgets to be synchronous in order to register child widgets in the same tick #7957
ApplicationShell.TrackableWidgetProvider.onDidChangeTrackableWidgets if child widgets are added asynchronouslywindowOptions using an IPC-Event #7803windowOptions #7803download:plugins script #7747download:plugins script #7747download:plugins script to display errors at the end of the script #7881toDisposeOnActiveChanged #7894next/previous tab group commands #7707next/previous tab in group commands #7707momentjs dependency #7727decompress to 4.2.0 #7715uuid to 8.0.0 #77493.9.2 #7807OpenerService #6921CompletionItem.range shape #7820explorer.newFolder command #7843workbench.action.revertAndCloseActiveEditor API #7702vscode.workspace.fs APIs for registered filesystem providers only (not yet real file system) #7824workbench.action.openRecent command #7812workspace API onDidCreateFiles #7718workspace API onDidDeleteFiles #7718workspace API onDidRenameFiles #7718workspace API onWillCreateFiles #7718workspace API onWillDeleteFiles #7718workspace API onWillRenameFiles #7718terminal.kill #7906terminalSendSequence #7906registerCommand API incompatibilities #7296preferences widget user-interface #7105scm.defaultViewMode preference to control the display of the scm widget #7717scm view as a tree #7505zsh #7889Run Last Task #7890TerminalSearchWidget before disposing the TerminalWidget #7882workspaceState when-closure context #7846Breaking changes:
disallowReloadKeybinding under the electron subsection #7803KeybindingRegistry registers a new keybinding with a higher priority than previously in the same scope #7839tree view mode in the scm view #7505
ScmWidget will likely require changes.taskId from TaskTerminalWidgetOpenerOptions #7765download:plugins script including performance and error handling #7677download:plugins script to include colors for better visibility #7648DisposableCollection.onDispose event #7508nsfw to 1.2.9 #7535vscode-uri to version ^2.1.1 #7506EditorCommandContribution and EditorMenuContribution #7569--no-cluster flag is specified #7386process.versions.electron for sub-processes #7386successExitCodes and expectedErrors to arrays to fix serialization #7627editor.maxTokenizationLineLength preference #7618isChord call #7468onigasm to version ^2.2.0 fixing syntax-highlighting #7610Select All in the output-view #7523severity to OutputChannel.appendLine method for coloring #7549vscode.execute... commands #7563env.appName reuse the value of applicationName (as defined in the package.json) #7642SelectionRange and SelectionRangeProvider VS Code API #7534SaveFileDialog #7461ResourceProvider #7595overviewRuler and minimap theming for SCM decorations #7330TaskService.lastTask #7553presentation.clear in the task configuration schema #7454presentation.echo in the task configuration schema #7503presentation.panel in the task configuration schema #7260presentation.showReuseMessage in the task configuration schema #7454presentation.reveal and presentation.focus for detected tasks #7548terminal.integrated.shell.linuxterminal.integrated.shell.osxterminal.integrated.shell.windowsterminal.integrated.shellArgs.linuxterminal.integrated.shellArgs.osxterminal.integrated.shellArgs.windowsBreaking changes:
CommandRegistry.registerHandler registers a new handler with a higher priority than previously #7539PluginModel.packagePath and PluginModel.packageUri should be used instead #7583configStorage argument from PluginManager.registerPlugin #7265
PluginManager.configStorage property instead. #7265TerminalProcess doesn't handle shell quoting, the shell process arguments must be prepared from the caller #6836
@theia/process/lib/common/shell-quoting.ts
in order to process arguments for shells.@theia/process/lib/common/shell-quoting and @theia/process/lib/common/shell-command-builder for creating shell inputs #6836widget.closable property #7278inputValidation theming #7351CommandService.execute #7326build-essential #7256timingSafeEqual #7308ripgrep to search files in hidden folders #7333explorer to reflect problem markers #6863problems-view #7344MiniBrowserEndpoint.defaultHandler() response for non mime-db files #7356workbench.action.addRootFolder command #7350workbench.action.openSettings command #7320storagePath to return undefined when necessary #7394terminal.integrated.cursorBlinking preference #7284terminal.integrated.cursorStyle preference #7284terminal.integrated.cursorWidth preference #7284terminal.integrated.drawBoldTextInBrightColors preference #7284terminal.integrated.fastScrollSensitivity preference #7284home, page-up, page-down shortcuts #7305xterm dependency #7121vsx-registry extension to manage plugins #6655NEW_FILE and NEW_FOLDER could not be triggered under certain conditions #7302Breaking changes:
debuggingStaturBar to debuggingStatusBar #7409CancelationTokenImpl to CancellationTokenImpl #7409VIEW_ITEM_INLINE_MNUE to VIEW_ITEM_INLINE_MENU #7409GitHistoryWidget (History View), and GitNavigableListWidget to a new packaged named scm-extra #6381
GitHistoryWidget to ScmHistoryWidgetTaskAttachQuickOpenItem #7392TaskService.taskProviderRegistry #7418TaskRestartRunningQuickOpenItem to RunningTaskQuickOpenItem #7392handleWroleWordOptionClicked to handleWholeWordOptionClicked #7409toDiposeOnUpdateCurrentWidget to toDisposeOnUpdateCurrentWidget #7409[cli] added an additional flag to the download:plugins script #7123
p=true: plugins should be preserved as they are (compressed).p=false (default): plugins should be uncompressed.[cli] added API to create integration test pages #7029
[core] added a new React-based dialog type ReactDialog #6855
[core] added ability to make the application data folder configurable #7214
[core] added additional commands to close main area widgets #7101
[core] added handling to dismiss any active menu when the quick palette is opened #7136
[core] added handling to ensure that disabled keybindings do not shadow enabled ones #7022
[core] added support for icons in a submenu #7091
[core] fixed 'out of sync' error #7139
[core] fixed import in lsp-types.ts #7075
[core] fixed set selection on right-click #7147
[core] fixed the TOGGLE_MAXIMIZED command #7012
[core] fixed the search-box for trees #7089
[core] fixed tree highlighting foreground color #7025
[core] updated RecursivePartial to allow arrays #7201
[core] updated the AboutDialog to include the applicationName #7135
[core] updated the DialogProps to include: #7080
maxWidth: control the maximum width allowed for a dialog.wordWrap: control the word wrapping behavior for content in the dialog.[core] updated the THEIA_ENV_REGEXP_EXCLUSION #7085
[debug] added ability to lazily update frames of all threads in all-stop mode #6869
[debug] fixed issue where breakpoints were incorrectly rendered on column 1 #7211
[documentation] updated code of conduct #7161
[editor] updated the log level for the NavigationLocationService #7042
[electron] added default properties for OpenDialog #7208
[electron] added handling so only the BrowserWindow can access backend HTTP services #7205
[electron] updated stat check handling for the save dialog #7197
[filesystem] updated the handling of deletions triggered by a user #7139
[git] added additional handling when a user attempts to amend without a previous commit #7033
[keymaps] updated the keyboard shortcuts widget font-size #7060
[markers] improved marker node descriptions #7209
[markers] updated marker tooltips to display full path to resource #7207
[mini-browser] added additional HtmlHandler support #6969
[monaco] added handling to activate a grammar only for languages with a registered grammar #7110
[monaco] added support for array snippet prefixes #7177
[monaco] close an active menubar dropdown when the quick palette is launched #7136
[monaco] implemented support for multiple workspace folders in MonacoWorkspace #7182
[plugin] added ability to customize the plugin host process #7181
[plugin] added functionality to expose the metadata scanner to the API #7134
[plugin] added functionality to show progress on plugin activation #7017
[plugin] added handling to activate a language based on created mode #7110
[plugin] added handling to gracefully terminate plugin host processes without an rpc connection #7192
[plugin] added handling to prevent error on disabled performance API #7175
[plugin] fixed window.showTextDocument to allow opening resources with untitled schema #6803
[plugin] implemented readFile for workspace filesystem #6980
[plugin] implemented writeFile for workspace filesystem #6980
[preferences] added functionality to use text models to update content #7110
[preferences] fixed display of file icons #7011
[preview] added ability to render .markdown files #7234
[repo] added two new npm scripts: #7096
test:references: fails if typescript references are out of sync.prepare:references: updates typescript references, if required.[repo] the prepare script now updates typescript references.
[repo] updated the prepare script so it now updates typescript references #7096
[scm] fixed alignment of file icons #7041
[scm] fixed incorrect icon colors on hover #7044
[terminal] added a search widget to terminals #5471
[core] from now on, downstream projects can refine where the configuration files (such as settings.json, keymaps.json, recentworkspace.json, etc.) will be stored by Theia. #4488
The default location remains the same: ~/.theia, however it can be customized by overriding the #getConfigDirUri method of the EnvVariablesServer API. The easiest way is to subclass the EnvVariablesServerImpl and rebind it in your backend module:
// your-env-variables-server.ts:
import { injectable } from 'inversify';
import { EnvVariablesServerImpl } from '@theia/core/lib/node/env-variables';
@injectable()
export class YourEnvVariableServer extends EnvVariablesServerImpl {
async getConfigDirUri(): Promise<string> {
return 'file:///path/to/your/desired/config/dir';
}
}
// your-backend-application-module.ts:
import { ContainerModule } from 'inversify';
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
import { YourEnvVariableServer } from './your-env-variables-server';
export default new ContainerModule((bind, unbind, isBound, rebind) => {
rebind(EnvVariablesServer).to(YourEnvVariableServer).inSingletonScope();
});
Breaking changes:
scrollLineUp, scrollLineDown, scrollToTop, scrollPageUp, scrollPageDownConsuming Builtin and External VS Code Extensions.@theia/debug-nodejs extension #6933
@theia/editorconfig extension #6933
@theia/java extension #6933
theia-apps theia-java image for an example application which has been updated to
use VS Code extensions instead of @theia/java.@theia/java-debug extension #6933
theia-apps theia-java image for an example application which has been updated to
use VS Code extensions instead of @theia/java-debug.@theia/merge-conflicts extension #6933
@theia/python extension #6933
theia-apps theia-python image for an example application which has been updated to
use VS Code extensions instead of @theia/python.@theia/textmate-grammars extension #6933
@theia/tslint extension #6933
@theia/typescript extension #6933
theia-apps theia-typescript image for an example application which has been updated to
use VS Code extensions instead of @theia/typescript.ApplicationShell.getAreaFor for tabbars #6994toggle minimap command and menu item #6843toggle render whitespace command and menu item #6843toggle word wrap command and menu item #6843go to line #6770select encoding #6770select end of line sequence #6770select indentation #6770select language mode #6770go to line statusbar item to trigger the go to line command directly #6770git checkout statusbar tooltip similarly to VS Code #6779find-git-repositories #6850merge-conflicts command category #6790await on workspace edits file creation #6851inspect developer token command #6966vscode.openFolder command #6928--plugin-max-session-logs-folders=N) session folders are retained.workbench.action.closeActiveEditor command #6978showTextDocument API #6824DocumentsMainImpl.toEditorOpenerOptions #6824processId and terminalId to the TaskExitedEvent #6825restart running task #6811presentation.reveal and presentation.focus #6814restartTask so it can be called by others #6811terminateTask so it can be called by others #6811onDidChangeCurrentTerminal event #6799new terminal in a multi-root workspace #6876API Integration testing framework #6852new file dialog #6977Breaking changes:
ApplicationPackageManager.start* to return an instance of a server child process instead of promise #6852.gen-webpack.config.js #6852.
webpack.config.js is generated only once. It can be edited by users to customize bundling,
but should be based on gen-webpack.config.js to pick any changes in the generated config.
If it does not have a reference to gen-webpack.config.js then it will be regenerated.virtual-renderer. react-renderer should be used instead #6885virtual-widget. react-widget should be used instead #6885registerComositionEventListeners() to registerCompositionEventListeners() #6961@theia/json dependency. Applications should explicitly depend on @theia/json instead #6647gererateTimeFolderName to generateTimeFolderName #6956@theia/json dependency. Applications should explicitly depend on @theia/json instead #6647getStrigifiedTaskSchema() has been renamed to getStringifiedTaskSchema() #6780reorgnizeTasks() has been renamed to reorganizeTasks() #6780input, textarea, select and button elements were styled in an ad-hoc manner, i.e.
some were styled globally for a tag, other per a component and third with a dedicated css class name.
Now Theia does not style these elements by default, but an extension developer should decide.
Theia comes though with predefined css class names: theia-input, theia-select and theia-button
to style input/textarea, select and button elements correspondingly. Existing components were refactored to use them.--theia and replacing all dots with dashes.
For example widget.shadow color can be referenced in css with var(--theia-widget-shadow).ColorRegistry.getCurrentColor.in the frontend module to enable it on startup
MonacoThemingService.register({
id: 'myDarkTheme',
label: 'My Dark Theme',
uiTheme: 'vs-dark',
json: require('./relative/path/to/my_theme.json'),
includes: {
'./included_theme.json': require('./relative/path/to/included_theme.json')
}
});
later from a file:
@inject(MonacoThemingService)
protected readonly monacoThemeService: MonacoThemingService;
this.monacoThemeService.register({
id: 'myDarkTheme',
label: 'My Dark Theme',
uiTheme: 'vs-dark',
uri: 'file:///absolute/path/to/my_theme.json'
});
or install from a VS Code extension.
ColorContribution contribution point and calling ColorRegistry.register.
It's important that new colors are derived from existing VS Code colors if one plans to allow installation of VS Code extension contributing color themes.
Otherwise, there is no guarantee that new colors don't look alien for a random VS Code color theme.
One can derive from an existing color, just by plainly referencing it, e.g. dark: 'widget.shadow',
or applying transformations, e.g. dark: Color.lighten('widget.shadow', 0.4).LabelProvider.getIcon should be sync and fast to avoid blocking rendering and icon caching.
One has to pass more specific elements to get a more specific icon. For example, one cannot answer precisely from a URI
whether a folder or a file icon should be used. If a client wants to get a proper result then it should pass FileStat for example or
provide own LabelProviderContribution which derives FileStat from a custom data structure and then calls LabelProvider.getIcon again.LabelProviderContribution methods can return undefined meaning that the next contribution should be tried.TreeNode.name, TreeNode.description and TreeNode.icon are deprecated and will be removed later.
One has to provide LabelProviderContribution implementation for a custom tree node structure.
Before these attributes have to be computed for all nodes and stored as a part of the layout.
From now on they will be computed only on demand for visible nodes.
It decreases requirements to the local storage and allows to invalidate node appearance by simply re-rendering a tree.example-browser and example-electron applications to remove extensions which are instead contributed by VS Code builtin extensions #6883
@theia/cli script download:plugins can be used:
package.json you can define:
theiaPluginDir: to specify the folder in which to download plugins, in respect to your package.jsontheiaPlugins: to specify the list of plugins in the form of "id": "url"