When true, the user has explicitly trusted the contents of the workspace.
The name of the workspace. undefined
when no folder
has been opened.
All notebook documents currently known to the editor.
The folder that is open in the editor. undefined
when no folder
has been opened.
All text documents currently known to the system.
The location of the workspace file, for example:
file:///Users/name/Development/myProject.code-workspace
Depending on the workspace that is opened, the value will be:
undefined
when no workspace or a single folder is openedUri
otherwise.Note: it is not advised to use workspace.workspaceFile
to write
configuration data into the file.
List of workspace folders or undefined
when no folder is open.
Note that the first entry corresponds to the value of rootPath
.
Make changes to one or many resources or create, delete, and rename resources as defined by the given workspace edit.
All changes of a workspace edit are applied in the same order in which they have been added. If multiple textual inserts are made at the same position, these strings appear in the resulting text in the order the 'inserts' were made. Invalid sequences like 'delete file a' -> 'insert text in file a' cause failure of the operation.
When applying a workspace edit that consists only of text edits an 'all-or-nothing'-strategy is used. A workspace edit with resource creations or deletions aborts the operation, e.g. consecutive edits will not be attempted, when a single edit fails.
A workspace edit.
Optional metadata for the edit.
A thenable that resolves when the edit could be applied.
Returns a path that is relative to the workspace folder or folders.
When there are no workspace folders or when the path is not contained in them, the input is returned.
A path or uri. When a uri is given its fsPath is used.
When true
and when the given path is contained inside a
workspace folder the name of the workspace is prepended. Defaults to true
when there are
multiple workspace folders and false
otherwise.
A path relative to the root or the input.
Find files across all workspace folders in the workspace.
A glob pattern that defines the files to search for. The glob pattern will be matched against the file paths of resulting matches relative to their workspace. Use a relative pattern to restrict the search results to a workspace folder.
A glob pattern that defines files and folders to exclude. The glob pattern
will be matched against the file paths of resulting matches relative to their workspace. When undefined
only default excludes will
apply, when null
no excludes will apply.
An upper-bound for the result.
A token that can be used to signal cancellation to the underlying search engine.
A thenable that resolves to an array of resource identifiers. Will return no results if no workspace folders are opened.
Find text in files across all [workspace folders] in the workspace
What to search
Get a workspace configuration object.
When a section-identifier is provided only that part of the configuration
is returned. Dots in the section-identifier are interpreted as child-access,
like { myExt: { setting: { doIt: true }}}
and getConfiguration('myExt.setting').get('doIt') === true
.
When a scope is provided configuration confined to that scope is returned. Scope can be a resource or a language identifier or both.
A dot-separated identifier.
A scope for which the configuration is asked for.
The full configuration or a subset.
Returns the workspace folder that contains a given uri.
undefined
when the given uri doesn't match any workspace folderAn uri.
A workspace folder or undefined
An event that is emitted when the configuration changed.
An event that is emitted when a {@link Notebook notebook} has changed.
An event that is emitted when a text document is changed. This usually happens when the contents changes but also when other things like the dirty-state changes.
An event that is emitted when a workspace folder is added or removed.
An event that is emitted when a notebook is disposed.
Note 1: There is no guarantee that this event fires when an editor tab is closed.
Note 2: A notebook can be open but not shown in an editor which means this event can fire for a notebook that has not been shown in an editor.
An event that is emitted when a text document is disposed.
To add an event listener when a visible text document is closed, use the TextEditor events in the window namespace. Note that this event is not emitted when a TextEditor is closed but the document remains open in another visible text editor.
An event that is emitted when files have been created.
Note: This event is triggered by user gestures, like creating a file from the
explorer, or from the workspace.applyEdit
-api, but this event is not fired when
files change on disk, e.g triggered by another application, or when using the
workspace.fs
-api.
An event that is emitted when files have been deleted.
Note 1: This event is triggered by user gestures, like deleting a file from the
explorer, or from the workspace.applyEdit
-api, but this event is not fired when
files change on disk, e.g triggered by another application, or when using the
workspace.fs
-api.
Note 2: When deleting a folder with children only one event is fired.
Event that fires when the current workspace has been trusted.
An event that is emitted when a notebook is opened.
An event that is emitted when a text document is opened.
To add an event listener when a visible text document is opened, use the TextEditor events in the window namespace. Note that:
An event that is emitted when files have been renamed.
Note 1: This event is triggered by user gestures, like renaming a file from the
explorer, and from the workspace.applyEdit
-api, but this event is not fired when
files change on disk, e.g triggered by another application, or when using the
workspace.fs
-api.
Note 2: When renaming a folder with children only one event is fired.
An event that is emitted when a notebook is saved.
An event that is emitted when a text document is saved to disk.
An event that is emitted when an edit session identity is about to be requested.
An event that is emitted when files are being created.
Note 1: This event is triggered by user gestures, like creating a file from the
explorer, or from the workspace.applyEdit
-api. This event is not fired when
files change on disk, e.g triggered by another application, or when using the
workspace.fs
-api.
Note 2: When this event is fired, edits to files that are being created cannot be applied.
An event that is emitted when files are being deleted.
Note 1: This event is triggered by user gestures, like deleting a file from the
explorer, or from the workspace.applyEdit
-api, but this event is not fired when
files change on disk, e.g triggered by another application, or when using the
workspace.fs
-api.
Note 2: When deleting a folder with children only one event is fired.
An event that is emitted when files are being renamed.
Note 1: This event is triggered by user gestures, like renaming a file from the
explorer, and from the workspace.applyEdit
-api, but this event is not fired when
files change on disk, e.g triggered by another application, or when using the
workspace.fs
-api.
Note 2: When renaming a folder with children only one event is fired.
An event that is emitted when a notebook document will be saved to disk.
Note 1: Subscribers can delay saving by registering asynchronous work. For the sake of data integrity the editor might save without firing this event. For instance when shutting down with dirty files.
Note 2: Subscribers are called sequentially and they can delay saving by registering asynchronous work. Protection against misbehaving listeners is implemented as such:
The current thresholds are 1.5 seconds as overall time budget and a listener can misbehave 3 times before being ignored.
An event that is emitted when a text document will be saved to disk.
Note 1: Subscribers can delay saving by registering asynchronous work. For the sake of data integrity the editor might save without firing this event. For instance when shutting down with dirty files.
Note 2: Subscribers are called sequentially and they can delay saving by registering asynchronous work. Protection against misbehaving listeners is implemented as such:
The current thresholds are 1.5 seconds as overall time budget and a listener can misbehave 3 times before being ignored.
Open a notebook. Will return early if this notebook is already loaded. Otherwise the notebook is loaded and the onDidOpenNotebookDocument-event fires.
Note that the lifecycle of the returned notebook is owned by the editor and not by the extension. That means an onDidCloseNotebookDocument-event can occur at any time after. Note that opening a notebook does not show a notebook editor. This function only returns a notebook document which can be shown in a notebook editor but it can also be used for other things.
The resource to open.
A promise that resolves to a notebook.
Open an untitled notebook. The editor will prompt the user for a file path when the document is to be saved.
The notebook type that should be used.
The initial contents of the notebook.
A promise that resolves to a notebook.
Opens a document. Will return early if this document is already open. Otherwise the document is loaded and the didOpen-event fires.
The document is denoted by an uri. Depending on the scheme the following rules apply:
file
-scheme: Open a file on disk, will be rejected if the file does not exist or cannot be loaded.untitled
-scheme: A new file that should be saved on disk, e.g. untitled:c:\frodo\new.js
. The language
will be derived from the file name.Note that the lifecycle of the returned document is owned by the editor and not by the extension. That means an
onDidClose
-event can occur at any time after opening it.
Identifies the resource to open.
A promise that resolves to a document.
A short-hand for openTextDocument(Uri.file(fileName))
.
A name of a file on disk.
A promise that resolves to a document.
Opens an untitled text document. The editor will prompt the user for a file
path when the document is to be saved. The options
parameter allows to
specify the language and/or the content of the document.
Options to control how the document will be created.
A promise that resolves to a document.
The URI scheme that this provider can provide edit session identities for.
A provider which can convert URIs for workspace folders of scheme @param scheme to an edit session identifier which is stable across machines. This enables edit sessions to be resolved.
Register a filesystem provider for a given scheme, e.g. ftp
.
There can only be one provider per scheme and an error is being thrown when a scheme has been claimed by another provider or when it is reserved.
The uri-scheme the provider registers for.
The filesystem provider.
Immutable metadata about the provider.
A disposable that unregisters this provider when being disposed.
Register a notebook serializer.
A notebook serializer must be contributed through the notebooks extension point. When opening a notebook file, the editor will send the onNotebook:
a notebook.
a notebook serializer.
Optional context options that define what parts of a notebook should be persisted
A disposable that unregisters this serializer when being disposed.
Register a task provider.
The task kind type this provider is registered for.
A task provider.
A disposable that unregisters this provider when being disposed.
Register a text document content provider.
Only one provider can be registered per scheme.
The uri-scheme to register for.
A content provider.
A disposable that unregisters this provider when being disposed.
Register a timeline provider.
Multiple providers can be registered. In that case, providers are asked in parallel and the results are merged. A failing provider (rejected promise or exception) will not cause a failure of the whole operation.
A scheme or schemes that defines which documents this provider is applicable to. Can be *
to target all documents.
A timeline provider.
A disposable that unregisters this provider when being disposed.
Save all dirty files.
Also save files that have been created during this session.
A thenable that resolves when the files have been saved.
This method replaces deleteCount
workspace folders starting at index start
by an optional set of workspaceFoldersToAdd
on the theia.workspace.workspaceFolders
array. This "splice"
behavior can be used to add, remove and change workspace folders in a single operation.
If the first workspace folder is added, removed or changed, the currently executing extensions (including the
one that called this method) will be terminated and restarted so that the (deprecated) rootPath
property is
updated to point to the first workspace folder.
Use the onDidChangeWorkspaceFolders()
event to get notified when the
workspace folders have been updated.
Example: adding a new workspace folder at the end of workspace folders
workspace.updateWorkspaceFolders(workspace.workspaceFolders ? workspace.workspaceFolders.length : 0, null, { uri: ...});
Example: removing the first workspace folder
workspace.updateWorkspaceFolders(0, 1);
Example: replacing an existing workspace folder with a new one
workspace.updateWorkspaceFolders(0, 1, { uri: ...});
It is valid to remove an existing workspace folder and add it again with a different name to rename that folder.
Note: it is not valid to call updateWorkspaceFolders() multiple times
without waiting for the onDidChangeWorkspaceFolders()
to fire.
the zero-based location in the list of currently opened workspace folders from which to start deleting workspace folders.
the optional number of workspace folders to remove.
the optional variable set of workspace folders to add in place of the deleted ones. Each workspace is identified with a mandatory URI and an optional name.
true if the operation was successfully started and false otherwise if arguments were used that would result in invalid workspace folder state (e.g. 2 folders with the same URI).
A file system instance that allows to interact with local and remote files, e.g.
workspace.fs.readDirectory(someUri)
allows to retrieve all entries of a directory orworkspace.fs.stat(anotherUri)
returns the meta data for a file.