* feat: Add the logo of the built-in extension
* chore(extension): add compressed icon
---------
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Move await from `priority` for drop/paste API proposals
For #179430, #30066
Switching to use `yieldTo` instead of `priority` to let an extension de-rank itself in the list of edits. `priority` was an arbitrary number while `yieldTo` gives more control over how the ranking takes place
* Combine esbuild scripts
This combines the various build scripts used for building webview/notebook content. This should make it easier to update settings for them
As part of this, I also fixed the script so that on watch it restarts automatically on syntax errors instead of exiting
* Migrate other build script
* Fixing math build script
For copy paste, I added logic to prefer using the text content if there's both `image/*` and `text/*` content in the clipboard
This however I also incorrectly applied this logic when dropping. In those cases, we instead want to prefer the image data (at least we do in the case of dragging and dropping from VS Code's explorer)
* Add widget to change how content is pasted
For #30066
This adds a widget that lets you change how content is pasted if there are multiple ways it could be pasted
To do this, I've made the post drop widget generic and reused it for pasting too
* Update types
* More code deduplication
* Allow dropping images into notebook to create attachments
Fixes#157577
This allows you to drag and drop image files or image data into a notebook cell to create an attachment
As part of this work, I also updated the paste attachment logic so that we can:
- Create multiple attachments in a single operation
- Create attachments of other mime types besides `image/png`
- Create attachments for images that have spaces in the filename
* Also allow pasting uri lists to create attachments
* Fix indent
* Add id
* Move attachment out of custom metadata, prep for attachment clean up in diff editor
* recover attachments from dirty notebook document
* Allow metadata to be restored when content changed/reverted in nb diff editor
* Compress notebook output streams before rendering
* OOps
* Combine the buffers manually
* Address code review
* oops
* Fixes
* We can have multiple stream mimes in an output
* oops
* cache and cleaner complete, needs debounce
* minor renaming and reformatting
* bugfix for paste into new cell
* cleaning functionality complete
* refer to metadata as copy of current cell's
* check undef before reading from cache
* working state, pending cache restructure
* dots -> brackets
* pre-class refactor
* massive cleaner refactor
* cache typing, closed nb check, workspaceEdit only if metadata is changed
* undefined access fix
* proper debouncer
* get it up to work again
* no need to loop
* cell metadata uri parsing regression
* diagnostic
* Show diagnostics on document open
* transfer cache before file renames
* disable word wrap in notebook diff editor
* Avoid early notebook cell metadata deep clone
* No special case empty cell
* rename
* better naming
* Quick fix for invalid image attachment
* cleanup
* Add code action metadata
Co-authored-by: rebornix <penn.lv@gmail.com>
`currentCell` and `notebookUri` are currently any types, which hides type errors. To fix this and clean up the code, I've extracted a new `getCellFromCellDocument` method
* change dir of cellAttachmentRenderer
* add new directories to `.vscodeignore`
* add the .js directories back in...
* hopefully now understanding `.vscodeignore`
* dataflow support for updated metadata
* update cellAttachmentRenderer.ts to reflect metadata being a getter() inside MarkupCell
* document paste additions
* update condition to re-render cells, now includes metadata changes
* paste API working, debugging command added
* paste working with metadata. needs numbering, and cleaning upon delete
* paste screenshot works fully
* remove debugging command. Cleaning.
* notebook cells now re-render upon metadata changes
* changed name validity checking, remove unneeded function
* use _document for cell data, use snippet choice, dto fix
* return subscription, for loop, uri fix, alter metadata in-place, better snippet
* metadata fix, object.equals, fix cellAttRenderer metadata call
* added comment with source of encodeBase64
* gate mkdn image paste behind experimental setting
* dataflow support for updated metadata
* update cellAttachmentRenderer.ts to reflect metadata being a getter() inside MarkupCell
* update condition to re-render cells, now includes metadata changes
* notebook cells now re-render upon metadata changes
* fix missing metadata update
Co-authored-by: Peng Lyu <penn.lv@gmail.com>
* Finalize NotebookEditor api proposal
Fixes#149271
This finalizes most parts of the NotebookEditor api proposal. I haven't removed the proposal entirely as there are still a few parts being left behind:
- The deprecated properties/functions
- A few contribution points such as `notebook/cell/executePrimary`
* remove extra quote