doc/changelogs/CHANGELOG-2021.md
editorHasCallHierarchyProvider context key #10492WindowService and ElectronMainApplication updated to allow for asynchronous pre-exit code in electron #10379createFolder emitter for user gestures #10460getSourceUri to properly handle previews #10481isVersionLTE unit tests to cover preview versions #10530electron for Windows #10518AbstractResourcePreferenceProvider to handle multiple preference settings in the same tick and handle open preference files.
It will save the file exactly once, and prompt the user if the file is dirty when a programmatic setting is attempted. #7775OsSpecificCommand and ShellSpecificOptions so they are exportable #10547<a name="breaking_changes_1.21.0">Breaking Changes:</a>
vscode-languageserver-types; use vscode-languageserver-protocol instead #10500SelectionService as a constructor argument of TabBarRenderer #10394activeChanged signal emitter in favor of onDidChangeActiveWidget #10515currentChanged signal emitter in favor of onDidChangeCurrentWidget #10515WindowService interface considerably #10379
canUnload(): boolean- it's replaced by isSafeToShutDown(): Promise<boolean> to allow asynchronous handling in Electron.isSafeToShutDown() - replaces canUnload().setSafeToShutDown() - ensures that next close event will not be prevented.reload() - to allow different handling in Electron and browser.editor-decoration-style.ts to decoration-style.ts in core.
Each namespace now has its independent stylesheet. Only one rule should exist for a given selector in the provided stylesheet. #10441WebviewThemeDataProvider.getActiveTheme() to Theme instead of WebviewThemeType #10493resolveSystemPlugins, builtin plugins should now be resolved at build time #10353WebviewThemeData.activeTheme to activeThemeType #10493PreferenceProvider#pendingChanges field. It was previously set unreliably and caused race conditions.
If a PreferenceProvider needs a mechanism for deferring the resolution of PreferenceProvider#setPreference, it should implement its own system.
See PR for example implementation in AbstractResourcePreferenceProvider. #7775activateTerminal method in favor of open. #10529webpack://[namespace]/[resource-filename]... to webpack:///[resource-path]?[loaders] where resource-path is the path to
the file relative to your application package's root #10480electron-rebuild bug #10429font-awesome-webpack dependency #10401compression-webpack-plugin to v9.0.0 #10391electron.isDevMode API on Windows #10359runtime-import-check errors #10418new window command in the browser application #10364Deferred typings #10455sinon dependency to v12.0.0 #10381taskExecutions not returning executions properly on startup #10330showInput subsequently due to validateInput #10396yarn.lock #10349find in files history #10438options.env of tasks #10208ProcessTaskRunner #10392terminal.integrated.confirmOnExit preference #10374<a name="breaking_changes_1.20.0">Breaking Changes:</a>
T defaults to void if not specified when defining a Deferred #10455value is now not optional in Deferred<T>.resolve(value: T) #10455HostedPluginClient to PluginDevClient #10352HostedPluginServer to PluginDevServer #10352callhierarchy support #10310:
prepareCallHierarchy types brought closer to VSCode / LSP expectations.data field added to CallHierarchyItem and related type.window.titleBarStyle #10044svg icons causing them not to display #10232debug.confirmOnExit #10270.theia/launch.json from being re-created #10222close editor command to the file main-menu #10193go main-menu #10299workbench.action.files.revert command #10294src imports over lib #10234LocationLink and Declaration typings #10139DebugAdapterNamedPipeServer and DebugAdapterInlineImplementation #10163workbench.action.closeActiveEditor closer to vscode #10193webview regression due to postMessage #10336quick-open API #10230replace in files command #10242problemMatchers is set #10166workspace and folder scopes #10335<a name="breaking_changes_1.19.0">Breaking Changes:</a>
callhierarchy methods getRootDefinition, $provideRootDefinition, provideRootDefinition, and prepareCallHierarchy to allow a return of an item or an array of items #10310DEFAULT_WINDOW_HASH to common/window.ts #10291NewWindowOptions to common/window.ts #10291nls localization namespace from browser to common. #10153ElectronMainMenuFactory now inherits from BrowserMainMenuFactory and its methods have been renamed. #10044
handleDefault to handleElectronDefaultcreateContextMenu to createElectronContextMenucreateMenuBar to createElectronMenuBaroutput-channel from common to browser #10154output-preferences from common to browser #10154postJson method from OVSXClient #10325getCaption #10253ViewContainerPart constructor to take two new parameters: originalContainerId and originalContainerTitle #9644
viewContainerId parameter has been renamed to currentContainerId to enable drag & drop views.OVSXAsyncClient #10327VSXEnvironment from a class to an interface and symbol implemented in both browser and node #10327SymbolTag.Deprecated styling when rendering nodes #10114.theia plugins #10082breadcrumbs #9920
breadcrumbs contributions were added from core, filesystem, outline-view and workspace.DebugVariables navigation #10165DebugConfigurationManager to wait for preferences being ready before initializing debug configurations #10167runtime-import-check rule to error when importing from folders meant for incompatible runtimes [#10124]canRead implementation which caused false positives #10131quick-input styling #10074QuickInputService to properly pass options when calling input #10096DebugConsoleMode enum #10113LanguageConfiguration fields (__characterPairSupport and __electricCharacterSupport) #10050CompletionItemKind constants #10123ExtensionMode to not fail plugin activation #10205setKeysForSync to not fail plugin activation #10205CancellationError #10035tags #10114vscode.openWith command #9881workbench.action.openWorkspaceConfigFile command #10039quick-pick menu were not properly updated #10065panel location was not respected #10162instanceof ThemeIcon to is method #10012DocumentSelector to correctly use a ReadonlyArray instead of Array #10070option priority #101581.50.0 to 1.53.2 #9959dash-licenses CI workflow to verify dependencies for 3PP FOSS license compatibility #9953attach to electron frontend debug launch configuration #10101codicons #9864ts-clean script to help when performing major refactorings #10156provideTasks implementation similarly to vscode #10061required field to be optional in TaskDefinition for compatibility #10015<a name="breaking_changes_1.18.0">Breaking Changes:</a>
rebuild API: second argument is now an optional object instead of an optional array #9710setTopPanelVisibily renamed to setTopPanelVisibility #10020BreadcrumbsRendererFactory to constructor arguments of DockPanelRenderer and ToolbarAwareTabBar #9920PreferenceService to constructor arguments of StatusBarImpl #10092defaultGutterStyles, maxWidth, continuationStyle, and highlightStyle #9999TaskDefinition.properties.required is now optional to align with the specification #10015inversify to v5.1.1 #9979ThemeIcon rendering in tree-views #10012css-loader dependency #9819webpack version range #9831yarn aliases #9880deepmerge dependency to 4.2.2 #9405selectedSession not being properly set when first starting a debug session #9963@vscode/codicons dependency #9828window.menuBarVisibility #9830handleExpansionToggleDblClickEvent binding #9877quick-commands menu #9921fuzzy searching and highlighting for the quick-input #9928ViewContainers to handle onDidChange correctly. #9798DebugRequestTypes to reflect DAP changes #9833SECURITY.md documentation #9804migration document to help adopters during release migrations #9817keytar #9807dynamic-require dev package to reduce dynamic requires for bundling #9660new window command #9519quick-file-open menu #9952MAX_FILE_SIZE_MB definition #9972find-widget font-family #9937drop-shadow styling for the quick-input #9938CompletionItemKind enum values #9908selectedRepository not being properly set in a multi-root #9954PluginViewRegistry #9847json commands to open settings.json at different preference scopes #9832onDidChangeCommitTemplate event support #9792vscode-builtin-git plugin #9915<a name="breaking_changes_1.17.0">Breaking Changes:</a>
ViewContainerPart methods and properties related to hiding and showing toolbar removed: toHideToolbar, hideToolbar, showToolbar, toolbarHidden. ViewContainerPart toolbars are now hidden or shown using CSS properties #9935handleExpansionToggleDblClickEvent in TreeWidget can no longer be overridden. Instead, doHandleExpansionToggleDblClickEvent can be overridden #9877ViewContainer rather than a child widget may not behave as expected. Such registrations should be made in the ViewContainer by overriding the updateToolbarItems method and using the registerToolbarItem utility. See the modifications to the scm and vsx-registry packages in the PR for examples #9798
VSXExtensionsContribution no longer implements TabBarToolbarContribution and is not bound as such. Extensions of the class that expect such behavior should reimplement it with caution. See caveats in PR.SidePanelHandler.addMenu and SidePanelHandler.removeMenu no longer exists, instead added addBottomMenu and addTopMenu for adding menu, removeTopMenu and removeBottomMenu for removing menu #9830
SidebarBottomMenu interface is renamed SidebarMenu and handles not only bottom menu's.theia-sidebar-bottom-menu to theia-sidebar-menuTheiaDockPanel constructor takes a new parameter preferenceskeytar dependency to 7.2.0 for broader operating system compatibility #9694diff labels #9786:focus styling to remove !important rule for extensibility #9700workbench.editor.closeOnFileDelete default to false #9720Hosted Plugin commands) #8706debugIcon.startForeground color #9759settings.json when adding debug configurations #9719DebugSessionOptions vscode API #9613yarn prerequisites #9726workbench.action.revertAndCloseActiveEditor command #9728in operator for when clauses #9492monaco dependency to 0.23.0 #9154open editors #9284deprecated diagnostic-tags #9721tree-view parts #9703workbench.files.action.refreshFilesExplorer command #9738TaskDto conversion #9740is_electron TypeError #9730stop and restart for hosted-plugins #9780tree-view item ordering #9775src/ import statements #9753yarn.lock #9683expand-all toolbar item #9749lastCwd when getCwdURI fails #9695add folder to workspace dialog #9684<a name="notable_changes_1.16.0">Notable Changes:</a>
webpack (^5.36.2 <5.47.0). [email protected] depends on webpack-sources@^3.0.1 but this new version produces bogus bundles in Theia applications. The fix works by constraining the webpack version range to not pull newer versions for Theia v1.16.0 meaning clients creating Theia applications will not be affected by the bundling failures caused by the new dependency. The bogus library will most likely be fixed before next release (v1.17.0) so we'll need to update the webpack range back to pull newer versions again (bug/performance/security updates).<a name="breaking_changes_1.16.0">Breaking Changes:</a>
CurrentEditorAccess is deprecated. Use the version implemented in the editor package instead. The services in call-hierarchy that previously used the local CurrentEditorAccess no longer do #9681DebugSession and PluginDebugSession constructors accept a parentSession of type DebugSession | undefined as their 3rd parameter, offsetting every subsequent parameter by one #9613quickOpen API (0.20.x) with quickInput API (0.23.x) #9154WorkspaceCommandContribution.addFolderToWorkspace no longer accepts undefined. WorkspaceService.addRoot now accepts a URI or a URI[] #9684ApplicationConfig updates #9568BackendApplicationServer which controls how to serve frontend files #9461dompurify as a shared dependency #9571expandOnlyOnExpansionToggleClick in TreeProps #9583resourceDirName and resourcePath context keys #9499supportSetVariable is disabled #9616editor-preview resolving outstanding bugs #9518
editor-preview-package classes as extensions of editor-package classesrange to undefined #9529onigasm wasm to use fetch instead of old AJAX #9620outline-view with vscode #9583toJSON implementation for Range and Position #9652secrets plugin API #9463workbench.action.quickOpen #9566ELECTRON_RUN_AS_NODE environment variable #9283iconPath to url #9608WorkspacePreferenceProvider waits for the WorkspaceService to be ready #9531preferences-view with major improvements to useability and performance #9439compile-references script error message #9667yarn.lock #9536@builtin and @installed search queries #9572extensionPack handling at buildtime #9425extensions.json functionality #9043sanitize-html dependency #9525workspace-service private members and methods #9597<a name="breaking_changes_1.15.0">Breaking Changes:</a>
keytar (a native node dependency) which may require libsecret to be installed #9463
outline-view-tree.ts has been renamed to outline-view-tree-model.ts to match class name. #9583EditorPreviewWidget now extends EditorWidget and EditorPreviewManager extends and overrides EditorManager. instanceof checks can no longer distinguish between preview and non-preview editors; use .isPreview field instead. #9518@theia/process/lib/node/shell-process no longer exports mergeProcessEnv as a raw function. Use @theia/core/lib/node/environment-utils and the injectable EnvironmentUtils class instead.ShellProcess constructor takes a new environmentUtils parameter to handle environment operations.VSXApiVersionProvider #9425webpack v5 #9451Add Configurations command behavior when an empty launch.json present #9467goto line and column in the file search #9478~ substitution in the browser file dialog #9416rename input #9419errors and warnings were not colored #9496extensionsUri #9428vscode.URI APIs #9422hosted-plugin.launchOutFiles preference #9176FileDecoration API with the latest version #8911replacer and reviver #9422ready promise resolves #9362InMemoryTextResource #9504include path #9307search.smartCase preference to control searching behavior #9408include/exclude patterns #9307search and replace to only display diff if a replace term is present #9516process.env from the browser environment #9452<a name="breaking_changes_1.14.0">Breaking Changes:</a>
DebugConfigurationManager no longer @injects() the FileService and now uses MonacoTextModelService instead. #9467ReactRenderer, LocationListRenderer, and FileDialogTreeFiltersRenderer have been made injectable/factoritized #9416
FileDialog and its children have been updated to use property injection where appropriate and initialization inside constructor has been moved to postConstructVSXRegistryAPI.getLatestCompatibleVersion now accepts VSXSearchEntry as a parameter #9486ansi-console #9339isEqual method for URI #8925useCapture argument to removeEventListener #9273saveAll by checking if a widget is dirty before saving #9393nsfw dependency to ^2.1.2 #9267currentFrame editor #9256reopen closed editor #8925split editor command.split editor up command.split editor down command.split editor right command.split editor left command.split editor orthogonal command.toggle full screen #9399electron #9390setContext #9343indexedDB if available #9303CodeActionTriggerKind enum #9368id with available arguments #9223CustomExecution API #9189PluginContext API #9276args from keybindings #9372canSelectMany implementation #9278.focus view commands #9364RPCProtocol for quality #8972editor-preview #9302safeStringify output error #9223preference-array.css styling due to typos #9270OPEN_PREFERENCES command #9355presentationOptions.clear.presentationOptions.echo.presentationOptions.focus.presentationOptions.panel.presentationOptions.reveal.presentationOptions.showReuseMessage.@theia/navigator dependency #9267copy extension id and copy commands to the extension context-menu #9292save as... command behavior #9022<a name="breaking_changes_1.13.0">Breaking Changes:</a>
WorkspaceCommands.SAVE_AS command no longer accepts an URI argument. It now uses the currently selected editor to determine the file to be saved #9022nsfw@^2.1.2 to fix an issue on Windows where file watching did not work at all.onDidChangeActiveEmitter when a quick-pick is accepted #9175when clause for commands registered to the command-palette #9188folder dialog fallback when setting canSelectFiles and canSelectFolders dialog props simultaneously on non-OSX machines #9179window.zoomLevel preference #9121electron dialogs to set the proper defaultPath (cwd) #9135owner sort when sorting markers for an individual resource #9211copy command to correctly set the owner #9160HOST_PATTERN_ENV #9201_preview editor from the references widget #9245lineNumberMinChars #9168font-family for the editor #9147registerToolbarItems to allow async registration #9044CustomEditor APIs #8910TaskScope.Workspace #9032onStartupFinished activation event #9212workbench.files.openFileFolder command #9213workspace.workspaceFile API #9132when clause for views #9156body instead of response object #9131onDidExpandViewEmitter was not properly fired #9229SCM API to latest version #9045vscode.window.createTerminal to accept URI current working directories #9140updateValue API for the PreferenceService #9178theia.d.ts #9200keyCode API #9183xterm addon versions which broke searching #9167pathSeparator variable substitution #9054Install from VSIX... command to install a local extension #9184settings object and add WorkspaceSchemaUpdater to allow configurations sections to be contributed by extensions #8917<a name="breaking_changes_1.12.0">Breaking Changes:</a>
PreferenceService and PreferenceProvider getConfigUri and getContainingConfigUri methods accept sectionName argument to retrieve URI's for non-settings configurations #8917FileDialog and LocationListRenderer now require FileService to be passed into constructor for text-based file dialog navigation in browser #8748@theia/mini-browser/lib/electron-main/ and its bindings in the electron-main context #9209TaskConfigurationModel.scope field now protected. TaskConfigurationManager setup changed to accommodate workspace-scoped tasks #8917WorkspaceData interface modified and workspace file schema updated to allow for tasks outside of settings object. WorkspaceData.buildWorkspaceData settings argument now accepts an object with any of the keys of the workspace schema #8917ProgressMessageOptions.cancelable documentation to reflect updated default #9033onFocusChanged event in order to update the active editor when switching editors #9013scm for nested git repositories #7629keymaps.json file #9088output APIs for extensibility #9060group property to the TaskDTO interface #8971problemMatchers were not properly set when configuring tasks #8971clear-all button in the preferences-view input for clearing search results #9113PreferenceChangeEvent<T> typing #9057show running tasks action #9016<a name="breaking_changes_1.11.0">Breaking Changes:</a>
SearchBox.input field type from HTMLInputElement to HTMLSpanElement #9005<a name="1.11.0_user-storage_scheme_updated"></a>
UserStorageUri scheme was changed from 'user_storage' to 'user-storage' as '_' is not a valid char in scheme (according to RFC 3986) #9049Saveable#closeOnFileDelete integration test #8942uri.isEqualOrParent #8876TreeWidget#applyFontStyles #8937mounpoint to mountpoint #8928save without formatting menu entry under file #8877"x.y.z" instead of "^x.y.z" in dependencies #8880NOTICE.md #8957files.trimTrailingWhitespace preference #8742FileStat.is #8986select for compare and compare with selected #8926createDeployQuickOpenItem method to create DeployQuickOpenItem in order to make extension deploy command extensible #8919viewsWelcome in TreeViews #8678CommentThread Plugin API #8870workbench.action.navigateBack command #8958workbench.action.navigateForward command #8958workbench.action.navigateToLastEditLocation command #8958highlight.js from ^9.12.2 to 10.4.1 to resolve security vulnerability #8881ScmTreeWidget #8929cwd explicitly set #8949<a name="breaking_changes_1.10.0">Breaking Changes:</a>
caption field to the ScmTreeWidget.Props interface. Removed name from ScmResourceComponent.Props, groupLabel from ScmResourceGroupComponent.Props, and path from ScmResourceFolderElement.Props interfaces. #8929