Commit Graph

367 Commits

Author SHA1 Message Date
Rachel Macfarlane
85119afc7b Issue distinct sessions per extension, remove session when extension is removed from trusted list 2020-03-30 14:34:42 -07:00
Rob Lourens
d661f7b2d1 Implement cancellation for notebook cell execution 2020-03-30 12:14:10 -05:00
Daniel Imms
3367ea6000 Merge pull request #93505 from microsoft/tyriar/46696_terminal_env
Allow extensions to contribute to terminal environments
2020-03-27 17:09:08 -07:00
Rachel Macfarlane
ab91532466 Add 'manage trusted extensions' option to account quickpick, #90385 2020-03-27 15:38:53 -07:00
Daniel Imms
000f8392b3 Only persist collections marked to do so 2020-03-27 09:03:53 -07:00
Daniel Imms
d91532afa8 Load in persisted collections from past sessions on ext host 2020-03-27 07:44:56 -07:00
Daniel Imms
0b68e23c7f Merge remote-tracking branch 'origin/master' into tyriar/46696_terminal_env 2020-03-27 05:45:27 -07:00
Daniel Imms
edc7100114 Apply multiple extension mutators, share code with ext host 2020-03-26 15:40:03 -07:00
rebornix
71fd93bf00 Cell.source 2020-03-25 19:50:49 -07:00
rebornix
24cac8b437 Edit API in the core 2020-03-25 17:53:27 -07:00
Daniel Imms
ed9e7241b7 Move single ext collection updates across 2020-03-25 11:57:12 -07:00
rebornix
fdf9e6ef07 Cell Editing API draft 2020-03-25 11:08:18 -07:00
Daniel Imms
b2a9d4dd61 Serialize collections on ext host 2020-03-25 07:35:19 -07:00
Daniel Imms
b41b85d224 Start building out env var service 2020-03-25 07:26:11 -07:00
rebornix
e48cd83bd1 honor document default cell editable metadata 2020-03-23 16:58:33 -07:00
rebornix
deddc655bd Event Dispatcher 2020-03-23 16:00:13 -07:00
rebornix
343fdecf0f notebook metadata sync between ext and main 2020-03-23 16:00:01 -07:00
Matt Bierner
579dab3196 Update custom editor api
For #77131

- Use a class for `CustomDocument` instead of an interface. Extensions can now add their own data to a `CustomDocument` by sublassing

- Renamed `resolveCustomDocument` to `openCustomDocument` and require that extensions return a `CustomDocument`

- Exposed edits on `CustomDocument`

- Made the third parameter of `registerCustomEditorProvider` a generic options bag that takes a `webviewOptions`
2020-03-23 13:10:49 -07:00
Rob Lourens
ff83a6b8a5 Make cell metadata non-optional 2020-03-20 22:20:01 -07:00
Rachel Macfarlane
2b86488f03 Add account context menu, #90385 2020-03-20 09:51:35 -07:00
rebornix
5d18ad4c59 editable metadata 2020-03-19 17:32:16 -07:00
rebornix
56660bef36 messages channel between ext and webview for outputs 2020-03-19 12:48:51 -07:00
Pine Wu
196562bff2 Merge remote-tracking branch 'origin/master' into octref/live-rename 2020-03-18 12:28:47 -07:00
rebornix
5194415bae Merge remote-tracking branch 'origin/master' into rebornix/notebook 2020-03-18 09:53:43 -07:00
Pine Wu
8870bcdf89 Merge remote-tracking branch 'origin/master' into octref/live-rename 2020-03-17 11:58:44 -07:00
Matt Bierner
7f6f3c28a6 Add cancellation parameter to custom editor resolve methods
Adds placeholder cancellation arguments to the custom editor api. These requests are currently never cancelled
2020-03-16 20:15:57 -07:00
rebornix
cdfd6eca84 Merge remote-tracking branch 'origin/master' into rebornix/notebook 2020-03-16 14:08:26 -07:00
Matt Bierner
041a5907b1 Add experimental moveCustomTextEditor hook
For #77131

Adds a hook that lets extensions preserve the webview for a custom editor across a rename
2020-03-13 17:49:52 -07:00
Daniel Imms
361f38ecf8 Merge branch 'master' into tyriar/link_handlers 2020-03-13 06:49:01 -07:00
Christof Marti
14b5afc0ec Add --use-host-proxy (microsoft/vscode-remote-release#2487) 2020-03-13 12:42:58 +01:00
Daniel Imms
b66d56602f Implement terminal link handler API
Part of #91606
2020-03-12 18:17:18 -07:00
Matt Bierner
9dae408dc3 Switch webview api back to use delegate model
For #77131

Going back the the delegate based model for a few reasons:

- It gives us a better approach to add additional API hooks in the future (such as for rename)

- In practive, the capabilities were almost always the same as the `userData` on the document. It is rather confusing to have both `userData` and the capabilities 'on' the document
2020-03-12 16:54:48 -07:00
Matt Bierner
3ef02fe7b0 Use the UndoRedoService for CustomEditors (#92408)
* Use the UndoRedoService for CustomEditors

For #90110

Changes custom editors (the ones not based on text) to use the UndoRedoService. This involved:

- Moving edit lifecycle back into the main process again (this is actually the bulk of the changes)
- Removing the `undo`/`redo` methods on  `CustomEditorModel`
- Using the undoRedoService to trigger undo/redo
2020-03-12 11:34:40 -07:00
Pine Wu
c833780356 Clean up API and add stopPattern 2020-03-10 12:38:03 -07:00
Alexandru Dima
84c838d1e3 Scaffold on type rename 2020-03-10 12:33:16 -07:00
Johannes Rieken
c1ec410c8b create cell uri on the extension host, expose as NotebookCell#uri 2020-03-10 18:06:45 +01:00
Johannes Rieken
52ea4ff1d7 Merge branch 'master' into rebornix/notebook 2020-03-10 10:43:26 +01:00
Matt Bierner
44d4fe895d Allow using Command in StatusBarItem (#92046)
Fixes #22353

StatusBarItem is one of the few places in our API where we only allow extensions to give us a command as a `string` instead of as `Command` object. This change updates the API to also allow passing in a `vscode.Command` (which also allows arguments!)
2020-03-09 12:57:33 -07:00
rebornix
285d89e30c Merge remote-tracking branch 'origin/master' into rebornix/notebook 2020-03-04 16:34:06 -08:00
Matt Bierner
077cd38d26 Add cancellation on CustomEditor.save
For #91702
2020-03-04 15:49:10 -08:00
Alex Ross
426d5bfb94 Fix problems with changing local port and restoring
Fixes #92008
2020-03-04 16:45:23 +01:00
rebornix
882ae1ec8f no unverified commit 2020-03-03 16:33:00 -08:00
Johannes Rieken
cddc990d7a Merge branch 'master' into rebornix/notebook 2020-03-03 12:10:05 +01:00
Alex Dima
c2a604a18c Add DocumentSemanticTokensProvider.onDidChangeSemanticTokens 2020-03-02 13:45:25 +01:00
Eric Amodio
afacd2bdfe Fixes #89509, #91464, #91628, #91619 2020-03-01 11:29:54 -05:00
rebornix
eed9a7b032 Merge remote-tracking branch 'origin' into rebornix/notebook 2020-02-27 16:19:32 -08:00
Matt Bierner
8ef18acdaf Don't require return value backup
Fixes #91703

All custom editors should implement backup or throw an exception if they cannot for some reason.
2020-02-27 11:55:39 -08:00
rebornix
f3780d98fb Merge remote-tracking branch 'origin' into rebornix/notebook 2020-02-26 14:56:49 -08:00
Eric Amodio
d46c8a8c3c Lots of timeline related changes, below
UI:
Adds Refresh icon to view title
Adds "Load more" entry at the end of the list for paging

API:
Restructures api around cursors
Renames TimelineCursor to generic TimelineOptions for more flexibility
Adds paging object to Timeline for clearer paging usage
Changes cursors to be strings, and explicit before and after cursors
Allows limit to take a cursor, so we can reload current data set
Clarifies id and fallback to timestamp
Adds reset flag to TimelineChangeEvent for providers to reset caching

Git provider:
Orders and returns commit date as the timestamp
Supports limit of a cursor (using rev-list --count)
Stops returning working/index changes when paging
Forcably resets cached data when changes are detected (naive for now)
2020-02-24 15:48:37 -05:00
Matt Bierner
99d5733e5f New iteration of webview editor API proposal
For #77131

**Motivation**
While our existing webview editor API proposal more or less works, building an editable webview editor is fairly tricky using it! This is especially true for simple text based editors.

It'd also be nice if we could get bi-directional live editing for text files. For example, if I open the same file in a webview editor and in VS Code's normal editor, edits on either side should be reflected in the other. While this can sort of be implemented using the existing API, it has some big limitations

**Overview of changes**
To address these problems, we've decided have two types of webview editors:

- Text based webview editors. These editors used a `TextDocument` as their data model, which considerably simplifies implementing an editable webview. In almost all cases, this should be what you use for text files

- Complex webview editors. This is basically the existing proposed API. This gives extension hooks into all the VS Code events, such as `save`, `undo`, and so on. These should be used for binary files or in very complex text editor cases.

Both editor types now have an explicit model layer based on documents. Text editor use `TextDocument` for this, while custom editors use `WebviewEditorCustomDocument`. This replaces the delegate based approach previously used.
2020-02-21 16:26:01 -08:00