- [filesystem] added the menu item
Upload Files...
to easily upload files into a workspace - [plugin] added
CodeActionKind
intersects
Plug-in API - [task] added support to configure tasks
- [workspace] allow creation of files and folders using recursive paths
Breaking changes:
- [dialog]
validate
andaccept
methods are now Promisified #4764
Breaking changes:
- [editor] turn off autoSave by default to align with VS Code #4777
- default settings can be overriden in application package.json:
{ "private": true, "name": "myapp", "theia": { "frontend": { "config": { "preferences": { "editor.autoSave": "on" } } } } }
- Added
scope
to task configurations to differentiate 3 things: task type, task source, and where to run tasks - [core] added implementation for toolbar support for sidepanels and changed sidepanel tabs
- [core] added new keybinding alt+shift+w to close all main area tabs
- [core] added the ability to make sidebar widgets closable
- [core] fixed
ToolbarAwareTabBar
detachment errors - [core] fixed broken wheel listener
- [core] improved scrollbar styling
- [core] updated tabbar toolbar to use VSCode icons
- [core] updated the UI with numerous improvements including sidepanel icons, better alignment, tabbar and menu size
- [cpp] added new
cpp.clangTidy
andcpp.clangTidyChecks
preferences to lint cpp program when clangd v9+ is used - [cpp] fixed properly restarting clangd language server when changing cpp build configurations
- [debug] added new debug preferences to control
view
,console
, andlocation
appearance - [editorconfig] added support to apply properties to monaco editor when opening/switching editors
- [file-search] improved ordering and consistency of file search results
- [filesystem] added
files.associations
property - [filesystem] improved the performance when deleting large directories
- [filesystem] upgraded
nsfw
file-watching dependency fromvscode-nsfw
toAxosoft/nsfw
which fixes memory leaks as well as fixes issues where files are not being properly watched outside the main watched directory - [git] fixed issue where Theia did not refresh the git view after deleting the only repository
- [git] improved the git diff navigation header to be static
- [java] improved handling of incomplete classpath commands
- [keybindings] improved the keybindings widget search and table header to be static
- [mini-browser] improved error handling of iframe errors
- [navigator] added
Collapse All
toolbar item - [navigator] updated the navigator to handle multi-root workspaces better
- [plugin-ext] added
workspace.onDidRenameFile
Plug-in API - [plugin-ext] added
workspace.onWillRenameFile
Plug-in API - [plugin-ext] added
workspace.registerFileSystemProvider
Plug-in API - [plugin-ext] added
workspace.saveAll
Plug-in API - [plugin-ext] added
workspace.updateWorkspaceFolders
Plug-in API - [plugin-ext] added ability to proceed
runInTerminal
requests in sidecar containers - [plugin-ext] added the ability to get selection context after executing a command
- [plugin-ext] fixed VSCode Plug-in API incompatibilities for the
onDidChangeActiveTextEditor
event - [plugin-ext] fixed firing the
onWillSaveTextDocument
event - [plugin-ext] fixed issue of re-deploying already initialized plugins
- [plugin]
workspace.openTextDocument
API now respects the contributedFileSystemProviders
- [plugin] added support for multiple windows per backend
- [plugin] fixed progress creation
- [plugin] improved the view container to use the native toolbar
- [preferences] fixed content assist when editing
settings.json
- [preferences] fixed parsing of settings from workspace files
- [preferences] improved overriding of default configurations
- [preview] fixed issue when opening images
- [search-in-workspace] added a new preference
search.lineNumbers
to control whether to show line numbers for search results - [task] added ability to
Run Selected Text
- [task] added new command to re-run the last task
- [task] added schema support for
tasks.json
- [typehierarchy] added the new type hierarchy extension
- [typehierarchy] improved
typehierarchy
to use all levels the language server sends if available - [workspace] added new
package.json
propertiesnewFIleName
andnewFileExtension
to specify default file name and extension when creating a new file - [workspace] improved performance of the file rename action for large directories
Breaking changes:
- [editor] computation of resource context keys moved to core #4531
- [plugin] support multiple windows per a backend #4509
- Some plugin bindings are scoped per a connection now. Clients, who contribute/rebind these bindings, will need to scope them per a connection as well.
- [quick-open] disable separate fuzzy matching by default #4549
- [shell] support toolbars in side bars #4600
- In side bars a widget title is rendered as an icon.
- [application-manager] added support for pre-load HTML templates
- [console] added support for console
when
contexts - [core] added support for os
when
contexts - [core] added support for shell
when
contexts - [core] added support for vscode closure contexts
- [core] fixed bad vertical resizing behavior
- [core] improved scrollbar visibility for the command palette
- [core] improved tab-bar display (display 'X' (close) on dirty editors when hovering over dirty icon)
- [core] improved tab-bar display (display 'X' (close) only when current editor is active, or has hover)
- [cpp] fixed
CPP_CLANGD_COMMAND
andCPP_CLANGD_ARGS
environment variables - [cpp] fixed the update of the active build config statusbar when preferences are updated
- [cpp] implemented the command
Create New Build Configuration
- [cpp] implemented the command
Reset Build Configuration
- [cpp] removed duplicate json config entry generated by the command
New Build Config
- [debug] added support for debug mode
when
contexts - [editor] added
Clear Editor History
command - [editor] added support for editor
when
contexts - [editor] added support for resource
when
contexts - [editor] registered editor to navigation location stack when
onCurrentEditorChange
event is fired - [electron] improved opening markdown links by opening them in the OS' default browser
- [electron] stored the last state of window geometry
- [file-search] added separator between recently opened items, and file results when executing the quick file open
- [file-search] added support for ignored globs and limit in file search
- [file-search] improved quick open file sort order
- [file-search] removed git diff editors from displaying the quick file open
- [file-search] added support for
glob
file searches - [file-search][plugin-ext] updated
exclude
of file search - [git] added the following git commands:
Stash
,Apply Stash
,Apply Latest Stash
,Pop Stash
,Pop Latest Stash
andDrop Stash
- [git] enhanced
Git Remote
command to obtain complete data - [git] fixed refreshing the
GitView
when git repo changes - [git] fixed the command
Git Reset
- [git] removed bundled git from
dugite
- [languages] fixed clash in language server session ids
- [messages] added support for notification
when
contexts - [mini-browser] added ability to pass argument for
openUrl
command - [monaco] added support for quick open
when
contexts - [monaco] added support for snipped mode
when
contexts - [navigator] added support for explorer
when
contexts - [navigator] fixed updating the navigator context menu on
supportMultiRootWorkspace
preference change - [plugin-ext-vscode] added ability to handle
vscode.diff
and open diff editor commands - [plugin-ext-vscode] added vscode
setContext
command - [plugin-ext-vscode] fixed local resource loading in webviews
- [plugin-ext] fixed
TreeView
widget registration - [plugin-ext] fixed
onDidSelectItem
behavior for the quick pick widget - [plugin-ext] fixed command conversions for code lens
- [plugin-ext] fixed issue of
OutputChanel.show
not displaying - [plugin-ext] fixed miscellaneous issues in golang plugin
- [plugin-ext] implemented
onWillSaveTextDocument
event handler - [plugin-ext][markers] added support to use problem manager to handle plugin markers
- [plugin] added
tasks.onDidEndTask
Plug-in API - [plugin] added
tasks.taskExecutions
Plug-in API - [plugin] added ability to display webview panel in 'left', 'right' and 'bottom' area
- [plugin] added support for
menus.commandPalette
contribution point - [plugin] added support for
vscode.previewHtml
command - [plugin] added support for read-only configuration index access
- [plugin] fixed issue of ensuring statusbar entry uniqueness
- [plugin] implemented inspect configuration command
- [plugin] refactored the
Command
interface by splitting into two:CommandDescription
andCommand
- [plugin][debug] added ability to connect to a remote debug server
- [preferences] added support for language specific preferences
- [preferences] aligned preference default values by type with vscode
- [search-in-workspace] added support for search
when
contexts - [search-in-workspace] fixed keybinding for
Search in Workspace
widget - [terminal] added support for font preferences
- [terminal] added support for terminal
when
contexts - [vscode] added support for OS specific keybindings
- [vscode] implemented
commands.getCommands
- [vscode] implemented
commands.registerTextEditorCommand
- [vscode] implemented
workspace.rootPath
- [workspace] added support for easier overriding of the
DefaultWorkspaceServer
- [workspace] added support for workspace
when
contexts - [workspace] fixed displaying the
Open With...
context menu only when more than one open handler is present - [mini-browser] improved handling of iframe errors and time-outs
Breaking changes:
- menus aligned with built-in VS Code menus #4173
- navigator context menu group changes:
1_open
and4_new
replaced bynavigation
group6_workspace
renamed to2_workspace
group5_diff
renamed to3_compare
group6_find
renamed to4_search
group2_clipboard
renamed to5_cutcopypaste
group3_move
and7_actions
replaced bynavigation
group
- editor context menu group changes:
2_cut_copy_paste
renamed to9_cutcopypaste
group
- navigator context menu group changes:
- [debug] align commands with VS Code #4204
debug.breakpoint.toggle
renamed toeditor.debug.action.toggleBreakpoint
debug.start
renamed toworkbench.action.debug.start
debug.thread.continue
renamed toworkbench.action.debug.continue
debug.start.noDebug
renamed toworkbench.action.debug.run
debug.thread.pause
renamed toworkbench.action.debug.pause
debug.thread.stepin
renamed toworkbench.action.debug.stepInto
debug.thread.stepout
renamed toworkbench.action.debug.stepOut
debug.thread.next
renamed toworkbench.action.debug.stepOver
debug.stop
renamed toworkbench.action.debug.stop
debug.editor.showHover
renamed toeditor.debug.action.showDebugHover
- multi-root workspace support for preferences #3247
PreferenceProvider
- is changed from a regular class to an abstract class
- the
fireOnDidPreferencesChanged
function is deprecated.emitPreferencesChangedEvent
function should be used instead.fireOnDidPreferencesChanged
will be removed with the next major release.
PreferenceServiceImpl
preferences
is deprecated.getPreferences
function should be used instead.preferences
will be removed with the next major release
- having
properties
property defined in thePreferenceSchema
object is now mandatory PreferenceProperty
is renamed toPreferenceDataProperty
PreferenceSchemaProvider
- the type of
combinedSchema
property is changed fromPreferenceSchema
toPreferenceDataSchema
- the return type of
getCombinedSchema
function is changed fromPreferenceSchema
toPreferenceDataSchema
- the type of
affects
function is added toPreferenceChangeEvent
andPreferenceChange
interface
navigator.exclude
preference is renamed tofiles.exclude
#4274
- [core] added
hostname
alias - [core] added new
editor.formatOnSave
preference, to format documents on manual save - [core] added support for setting end of line character
- [cpp] added new
cpp.clangdExecutable
andcpp.clangdArgs
to customize language server start command - [debug] added node debugger as a Plug-in
- [debug] added support for source breakpoints
- [git] added
discardAll
command - [git] added
stageAll
command - [git] added
unstageAll
command - [git] added new
git pull
command, to pull from default configured remote - [git] added new
git push
command, to push from default configured remote - [git] added the ability to refresh git repositories when a change is detected within a workspace
- [java] allow the ability to rebind
JavaContribution
- [languages] enabled INI syntax highlighting for
.properties
and.toml
files - [monaco] fixed cross editor navigation
- [monaco] fixed document-saving that took too long
- [monaco] improved
MonacoWorkspace.fireWillSave
performance - [plugin] added
globalState
andworkspaceState
Plug-in API - [plugin] added
registerColorProvider
Plug-in API - [plugin] added
registerRenameProvider
Plug-in API - [plugin] added
tasks.onDidStartTask
Plug-in API - [plugin] added basic support of snippets
- [plugin] added common service to handle
when
expressions - [plugin] added debug Plug-in API
- [plugin] added support for terminal APIs on window
- [plugin] added the ability to debug VS Code extensions
- [plugin] added the ability to get operating system connected to Plug-in
- [plugin] added the ability to provide a way to initialize workspace folders when Theia is started
- [plugin] added the ability to set the visibility of menu items through
when
expressions - [plugin] added workspace symbols Plug-in API
- [plugin] fixed spreading of command arguments
- [preferences] added the ability to update settings schema resource on schema changes
- [search-in-workspace] fixed issue regarding child root in
search-in-workspace
when there is a multiple-root workspace - [search-in-workspace] removed duplicates from
search-in-workspace
tree - [security] updated xterm.js to 3.9.2
- [task] added support to run tasks from multiple-roots
- [task] fixed cwd path
- [workspace] added multiple-root support for
WorkspaceService.getWorkspaceRootUri()
- [core] added a preference to define how to handle application exit
- [core] added a way to prevent application exit from extensions
- [core] added functionality to prevent application exit if some editors are dirty
- [core] allowed the ability to scope bindings per connection
- [core] fixed
@theia/core/lib/node/debug#DEBUG_MODE
flag to correctly detect when the runtime is inspected/debugged - [cpp] fixed clangd being prematurely started when a build config is active
- [electron] implemented HTTP-based authentication for Git
- [electron] updated Electron to
^2.0.14
- [electron] updated Git for Electron to fall back to embedded Git if no Git is found on the
PATH
- [file-search] added ability to search files from multiple-root workspaces
- [file-search] improved handling when attempting to open non-existent files from the
quick-open-file
- [filesystem] added the ability to convert URIs to platform specific paths
- [git] updated Git view to display short hash when on detached state
- [java-debug] added major enhancements to
java-debug
- [keybinding] normalized key sequences to US layout
- [languages] added a preference for every language contribution to be able to trace the communication client <-> server
- [languages] allowed the ability to provide Language Server start options
- [languages] fixed leaking language clients
- [languages][java] reuse
jdt.ls
workspace - [monaco] fixed keybindings on OSX
- [plug-in] added Plug-in API for language server contributions
- [plug-in] added
storagePath
Plug-in API - [plug-in] added
tasks.registerTaskProvider
Plug-in API - [plug-in] added
window.withProgress
Plug-in API - [plug-in] added ability to register keybindings from a Plug-in's
package.json
- [plug-in] added open link command
- [plug-in] added support for context menus in contributed views
- [plug-in] implemented API to get workspace folder by a given file URI
- [plug-in][languages] added ability to register a document highlight provider
- [search-in-workspace] added ability to perform 'Find in Folder...' with multiple folders simultaneously
- [search-in-workspace] added match and file count to search-in-workspace
- [search-in-workspace] added support for multiple-root workspaces
- [search-in-workspace] fixed path issues by instead using URIs
- [terminal] added ability to choose terminal root location when a workspace contains multiple roots
- [workspace] fixed long label computations for multiple-root workspaces
- [xterm] updated Xterm to
3.9.1
- Added better widget error handling for different use cases (ex: no workspace present, no repository present, ...)
- Addressed multiple backend memory leaks
- Prefixed quick-open commands for easier categorization and searching
- Refactored
Task
menu items into the newTerminal
menu - [core] added
theia.applicationName
to applicationpackage.json
and improved window title - [core] added graceful handling of init and re-connection errors
- [core] added the keybinding
ctrl+alt+a
andctrl+alt+d
to switch tabs left/right - [core] added the menu item
Find Command...
to easily trigger quick-open commands - [core] added toolbar support for tab-bars
- [core] updated the status-bar display when offline
- [cpp] updated the keybinding for
Switch Header/Source
fromOption+o
toOption+Command+o
when on macOS - [debug] added the ability to fork a debug adapter
- [debug] added the ability to trace the debug adapter communication
- [debug] implemented major frontend and backend debug improvements
- [electron] miscellaneous stability and usability improvements on Electron
- [getting-started] added
Getting Started Widget
- used to view common commands, recent workspaces, and helpful links - [lsp] added new symbol types and increased existing workspace symbol resilience
- [lsp] registered 'Restart' commands for each language server started for miscellaneous purposes
- [markers] added the context menu item
Collapse All
for problem markers - [mini-browser] miscellaneous mini-browser improvements
- [plug-in] added Plug-in API to communicate between Theia and plugins
- [plug-in] added
languages.registerCodeLensProvider
Plug-in API - [plug-in] added
languages.registerDocumentSymbolProvider
Plug-in API - [plug-in] added
window.showTextDocument
Plug-in API - [plug-in] added ability to provide custom namespaces for the Plug-in API
- [plug-in] registered a type definition provider
- [plug-in] added
tasks.registerTaskProvider
Plug-in API - [preview-editor] added the ability to open editors in preview mode
- [process] added the ability to create new node processes through forking
- [search-in-workspace] prompted users when performing
Replace All...
to limit accidental triggering - [search-in-workspace] fixed issue when selecting a file, the command
Find in Folder...
searches from the node's closest parent - [terminal] added the menu item and command
Split Terminal
- [workspace] added the ability to open multiple files simultaneously from the file navigator
- [workspace] added the context menu item
Collapse All
for the file navigator - [workspace] included workspace path as part of the URL fragment
- Reverted [cpp] Add debugging for C/C++ programs. This feature will come back in its own cpp-specific repo
- [callhierarchy][typescript] adapt to hierarchical document symbols
- [core] added methods to un-register menus, commands and keybindings
- [debug] decoupled debug model from UI + clean up
- [markers] added ability to remove markers
- [output] added a button to clear output view
- [plug-in] Terminal.sendText API adds a new line to the text being sent to the terminal if
addNewLine
parameter wasn't specified - [plug-in] added
DocumentLinkProvider
Plug-in API - [terminal] added 'open in terminal' to navigator
- [windows] implemented drives selector for the file dialog
- [cpp] added debugging for C/C++ programs
- [debug] added debug toolbar
- [debug] resolved variables in configurations
- [debug] updated debug session views to act like panels
- [keymaps] added new
View Keybindings Widget
- used to view search and edit keybindings - [languages] added TCL grammar file
- [plug-in] added
menus
contribution point - [workspace] added multi-root workspace support with vscode compatibility
- Re-implemented additional widgets using React
- Re-implemented miscellaneous components using React
- [cpp] added a status bar button to select an active cpp build configuration
- [cpp] implemented watch changes to compile_commands.json
- [git/blame] added support for convert to toggle command
- [markers] fixed #2315: fine grain marker tree computation
- [markers] improved performance by no longer storing markers in browser local storage by default
- [terminal] updated to xterm.js 3.5.0
- [textmate] added C/C++, Java, Python, CSS, html, less, markdown, shell, xml, yaml
- [tree] improved performance by not rendering collapsed nodes
- [ts] added support for one ls for all JavaScript related languages
- [workspace] added support for recently opened workspaces history
- New Plugin system !
- See design and documentation for more details.
- Introducing Task API.
- Note, the format of tasks.json has been changed. For details, see the Task extension's README.md.
- Added an UI when developing plugins
- Migrated widgets to
react
- Theia alerts you when the opening of a new tab is denied by the browser
- [core] added quick option to toggle the autosave feature
- [filesystem] added
File Download
feature - [git]
git commit
now alerts the user if no files are staged - [git] fixed
git
unstaging feature - [languages] added textmate syntax coloring support (works on
.ts
files for now until more grammars are registered) - [search-in-workspace] added new command
Search In Folder...
- [search-in-workspace] added the missing
Search
menu item - [workspace] fixed issue to prevent workspace root from being be deleted
.md
files that are edited indiff
mode now correctly open with the editorHTML
files now open in the editor by default
- Added search and replace widget
- Added the ability to delete files on OSX with cmd+backspace
- Added the ability to set more finely grained logger levels
- Fixed several memory leaks.
- [editor] changed the font in the editor
- [editor] fixed the capital
R
key (shift + r) not working in the editor - [file-search] added support for search in hidden files
- [git] added
git sync
andgit publish
actions - [navigator] added the ability to toggle hidden files in the navigator
jdt.ls
download on postinstall