Commit Graph

110 Commits

Author SHA1 Message Date
Anthony Dresser
c540e81108 clean up some disposable use (#6832) 2019-08-20 14:34:13 -07:00
Anthony Dresser
58bfba4b47 Merge from vscode b12f623603e2fc1c5b3037115fa37c1a6acc4165 (#6760) 2019-08-15 02:19:31 -07:00
Cory Rivera
60bf331f19 Correctly set focus on new Notebook cells after clicking on inline buttons. (#6708) 2019-08-13 14:14:18 -07:00
Kevin Cunnane
fb7ece006d Support Save As CSV/JSON/Excel/XML from Notebooks (#6627)
Updated existing serialization code so it actually supports serialization. Still needs work to replace the saveAs function when a QueryProvider doesn't support save as, but want to handle in separate PR.
Removed separate MainThread/ExtHostSerializationProvider code as the DataProtocol code is the right place to put this code
Plumbed support through the gridOutputComponent to use the new serialize method in the serialization provider
Refactored the resultSerializer so majority of code can be shared between both implementations (for example file save dialog -> save -> show file on completion)

* Update to latest SQLToolsService release
2019-08-09 11:37:53 -07:00
Cory Rivera
308029c03c Add buttons to Notebooks for creating new cells between other existing cells (#6596) 2019-08-06 10:31:46 -07:00
Charles Gagnon
8a6dc02e5b Change double-quote hygiene rule to tslint rule (#6514) 2019-08-05 09:46:22 -07:00
Anthony Dresser
9bfe8813b1 More layering (#6541)
* layer unlayered code; fix layering

* readd os

* fix definition of recommended extensions

* protect against tests
2019-07-31 22:20:39 -07:00
Anthony Dresser
c1acf6ae93 More work around isolating node imports (#6512)
* more work around isolating node imports

* rewrite query plan input

* fix hygiene errors

* fix tests

* address feedback

* remove welcome page changes
2019-07-30 14:01:37 -07:00
Chris LaFreniere
720a7fbfa2 Multiline cell execution fix (#6522) 2019-07-29 11:19:57 -07:00
Anthony Dresser
371504358d refactor notebook to be fileservice based (#6459) 2019-07-26 22:19:13 -07:00
Chris LaFreniere
d51bdbd094 Save multiline source in notebooks (#6445)
* Save multiline source in notebooks

* Stop demultiline localContentManager unnecessarily
2019-07-26 10:30:52 -07:00
Charles Gagnon
b2b2840990 Add double quotes for localize hygiene check (#6492)
* Add localize single quote hygiene task

* Update localize calls

* Update comment

* Fix build failures and remove test code
2019-07-25 10:35:14 -07:00
Maddy
7e98727d4c Dashboard/book widget (#6447)
* initial commit: new modelview widget that shows books

* moved the new command action to notebook contribution and addressed the comments

* localize changes

* removed changes from src/vs file and string changes

* make directory for each contribution

* typo fix
2019-07-22 17:00:02 -07:00
Anthony Dresser
62c40e4de5 fix build by moving icons (#6440) 2019-07-19 13:37:25 -07:00
Anthony Dresser
c23738f935 Inital platform relayering (#6385)
* moving test files and inital refactoring

* relayer extension host code

* fix imports

* make insights work

* relayer dashboard

* relayer notebooks

* moveing more code around

* formatting

* accept angular as browser

* fix serializer

* add missing files

* remove declarations from extensions

* fix build errors

* more relayering

* change urls to relative to help code relayering

* remove layering to prep for merge

* fix hygiene errors

* fix hygiene errors

* fix tests
2019-07-18 17:29:17 -07:00
Lucy Zhang
45c13116de Move books to insiders (#6428)
* move books to insiders

* move to insiders

* changed context key for nav buttons

* fixed nav buttons

* check product.quality
2019-07-18 16:35:28 -07:00
Lucy Zhang
089d7cb9f4 Disable Previous/Next buttons in first/last notebooks (#6390)
* hide first and last buttons

* added arrows to buttons

* removed extra methods
2019-07-17 14:39:35 -07:00
Kevin Cunnane
3c499d31e8 Fix #6396 Spark link is incorrect on latest server (#6398)
* Fix #6396 Spark link is incorrect on latest server
Internal Spark endpoint value changed. Updated to handle old & new URL
2019-07-17 13:55:01 -07:00
Lucy Zhang
43bd7268e8 hide nav buttons for non-book notebooks (#6377)
* hide nav buttons for non-book notebooks

* updated buttons for all themes

* changed foregroundColor to buttonForegroundColor
2019-07-16 16:26:03 -07:00
Anthony Dresser
0b7e7ddbf9 Merge from vscode 8e0f348413f4f616c23a88ae30030efa85811973 (#6381)
* Merge from vscode 8e0f348413f4f616c23a88ae30030efa85811973

* disable strict null check
2019-07-15 22:35:46 -07:00
Lucy Zhang
a706ff4d5b Books/navigation (#6280)
* added previous and next buttons

* previous and next notebook API

* links for prev/next notebooks

* fixed first and last pages

* made code more readable

* addressed Kevin's comments

* moved logic over to BookTreeItem

* show buttons in dev mode only

* added BookTreeItemFormat interface

* added interface and enum

* removed localize call
2019-07-12 10:18:46 -07:00
Chris LaFreniere
5225b5dc55 Use in proc markdown by default (#6315) 2019-07-09 15:23:47 -07:00
Kevin Cunnane
aef74c6d5a Fix #5238 Notebooks should support relative links (#6289)
* Fix #5238 Notebooks should support relative links
- Added detection of relative #links inside notebooks
- Added handling of these, at least for current notebook

Not handled: open other notebook & scroll to position.
2019-07-09 14:30:57 -07:00
Kevin Cunnane
fa1aa39bd9 Fix #6221 notebook shortcut and use new grid in stable (#6268)
- Fix #6221 Notebooks: Keyboard Shortcut for New Notebook has Changed.
  - Use Win+Alt+N instead of Win+Shift+N
- New Grid is now "stable" (forgot to do this in last PR)
2019-07-08 10:36:54 -07:00
Aditya Bist
ecfcb92a89 Data explorer/context menu initial (#6264)
* fixed context for data explorer

* added more files

* initial servers and database context menu actions finished

* added all actions for servers and databases with correct conditions

* added nodetype and nodelabel for subtype actions

* added nodeinfo logic to oe shim

* fixed context for cms

* added all scripting actions to data explorer

* review comments

* fix import

* fix correct context key

* removed unused import

* separate PR for commands and menus added

* rename mssql context menu nodes

* remove command id constants
2019-07-03 16:03:09 -07:00
Kevin Cunnane
10b066d300 Share Notebook grid rendering with Query editor (#6241)
This is a staged refactor to use the exact same grid logic in the Notebook and query editors, including context menu support, font settings, and sizing logic. The goal long term is:
- As the core Query grid is updated, Notebook can benefit from the changes
- As we add in support for contributions like new buttons & actions working on the grid, can share the logic
- Ideally if and when we refactor things like the action bar for grid results, we can apply in both places though this is TBD.

Fixes a number of issues:
- Fixes #5755 Grids don't respond to font settings. @anthonydresser can we remove setting from each query results editor and just use Notebook Styles since these are global (not scoped) settings?
- Fixes #5501 Copy from grid settings. 
- Fixes #4938 SQL Notebook result sets are missing the actions provide for SQL File results sets. this now has the core ability to solve this, and separate work items for specific asks (serialization, charting) are tracked.

Currently hidden:
- Save as... options in context menu
- All right toolbar actions (save as, chart).

Remaining issues to address in future commits:
- Need to implement support for serialization (#5137). 
- Need to add charting support
- Need to solve the layout of buttons on the right hand side when a small number of columns are output. It doesn't look right that buttons are so far away from the results
  - Will work with UX on this. For now, mitigating this by hiding all buttons, but will need to solve in the future
- Would like to make buttons contributable via extension, but need to refactor similar to ObjectExplorer context menu so that we can serialize context menu options across to extension host while still having internal actions with full support
2019-07-03 14:34:03 -07:00
Kevin Cunnane
cc6dea0631 Add Plotly output support to notebooks
With this change, Plotly types will be successfully rendered in a Notebook.
Currently they have a default width of 700px with a scrollbar if the window size is smaller (this matches other notebook viewers).
The Plotly library is dynamically required to avoid startup time perf hits. This is something we could look at for other components too.
2019-07-02 18:08:38 -07:00
Chris LaFreniere
708461eab5 Remove 'isMenu=true' from notebook toggle more (#6253) 2019-07-02 17:22:17 -07:00
Charles Gagnon
8ec1a05296 Change notebook to not save connections added through dropdown (#6254) 2019-07-03 00:11:02 +00:00
Chris LaFreniere
c4bf1b4180 Notebooks: Run all after/before (#6239)
* Run all above/below

* PR comments pre tests

* Added integration test
2019-07-02 16:49:12 -07:00
Chris LaFreniere
e8d4fba3c0 Support non-default font sizes in notebooks (#6222)
* Support non-default font sizes notebooks

* pr comments
2019-07-01 16:10:20 -07:00
Chris LaFreniere
e5858dee52 Make sure we sanitize the same way (#6233) 2019-07-01 14:05:50 -07:00
Kevin Cunnane
87f1f11509 Fix tags issue where metadata was not preserved (#6219) 2019-07-01 10:10:42 -07:00
Chris LaFreniere
8cf4120c27 Notebooks: Support for In-Proc Markdown Renderer (#6164)
* NB improve startup using built-in markdown render

This is a sample branch showing perf improvements if we load content using built-in markdown rendering
- Has issues where images aren't correctly rendered due to sanitization, need to copy renderer code and update settings
- Moves content load up before anythign to do with providers since we can render without knowing about these things

# Conflicts:
#	src/sql/workbench/parts/notebook/cellViews/textCell.component.ts

* Re-enable logging of each cell's rendering time

* Fix test issue

* Kernel loading working with new markdown renderer

# Conflicts:
#	src/sql/workbench/parts/notebook/cellViews/textCell.component.ts

* Fixed tests, cleaned up code

* markdownOutput component integration

* PR Comments

* PR feedback 2

* PR feedback again
2019-06-27 20:55:50 -07:00
Chris LaFreniere
a2c9a0a1ae Addaria label to kernel and attach to dropdowns (#6181) 2019-06-27 10:19:22 -07:00
Chris LaFreniere
77fb060fde Notebooks: Add Command + Keyboard Shortcut to Clear Outputs of Active Cell (#6169)
* Add command to clear cell output with test

* Fix typo

* PR Comments
2019-06-26 15:19:12 -07:00
Kevin Cunnane
97d36e2281 Support output renderers via Angular contributions (#6146)
- Added a registry for output components
- Refactored existing renderers to plug in via Angular
- Added Markdown renderer using new Angular contribution point
- Added support to notebook module to dynamically load new components
2019-06-26 11:32:24 -07:00
Chris LaFreniere
4fe81d8449 Only set notebookEditor <a> color in scrollable portion (#6140) 2019-06-24 10:46:38 -07:00
Kevin Cunnane
b37b14eabd Improve notebook link handling (#6087)
* Improve notebook link handling
- Single click now works for links inside Output areas
- Command links in untrusted notebooks have link color
- Refactored to use directive so code is in 1 place and can be easily
  added elsewhere if needed

* Removed unneeded service from constructor
2019-06-20 11:40:12 -07:00
Kevin Cunnane
47cf496c36 Add Notebook Save integration tests (#6103)
* Add Notebook Save integration tests
Wrote test to verify save behavior
Fixed issues found during testing,
specifically around how we notify dirty state change to extensions

* Improved error messages
2019-06-19 16:09:24 -07:00
Chris LaFreniere
453caa92d4 Fix for standard in hovering in code cell (#6107) 2019-06-19 15:02:03 -07:00
Kevin Cunnane
27cbd53253 Fix notebook dirty state after save (#6096)
Was getting a content changed loop in the events
Fix is to ignore save events from the input since it sends them
2019-06-18 17:38:20 -07:00
Kevin Cunnane
36fe725cf0 Fix RunAllCells throwing unhandled exception (#6089)
- Added await here.
- There's a 2nd entry point already doing it the right way, in the Notebook extension.
  No need to change that
2019-06-18 16:19:32 -07:00
Cory Rivera
cecc899949 Disable Manage Packages button if python is not installed (#6008) 2019-06-17 18:28:16 -07:00
Karl Burtram
5a7562a37b Revert "Merge from vscode 81d7885dc2e9dc617e1522697a2966bc4025a45d (#5949)" (#5983)
This reverts commit d15a3fcc98.
2019-06-11 12:35:58 -07:00
Chris LaFreniere
86a3217e98 Notebooks: Log telemetry when all markdown cells rendered (#5862)
* Log telemetry when all markdown cells rendered

* Enable referencing previous telemetry timestamps

* Fix broken unit test to do a null check

* Undo loading icon changes in textcelll

* Addressing PR comments

* PR comments II
2019-06-10 21:55:49 -07:00
Chris LaFreniere
d15a3fcc98 Merge from vscode 81d7885dc2e9dc617e1522697a2966bc4025a45d (#5949)
* Merge from vscode 81d7885dc2e9dc617e1522697a2966bc4025a45d

* Fix vs unit tests and hygiene issue

* Fix strict null check issue
2019-06-10 18:27:09 -07:00
Kevin Cunnane
14a6bf581c Fix New Notebook issues (#5958)
* Fix New Notebook issues
- Fix #5338 New Notebook menu item should be next to New Query
- Fix #4936 Add a shortcut to create a notebook in the document well

Created a built-in New Notebook command
that routes to the existing extension-based command.
This avoided a rearchitecture that was more complex that seemed worth it.
Per VSCode patterns, used a _ modifier for the existing command so it's "private"
2019-06-10 16:38:07 -07:00
Kevin Cunnane
730ad4b814 Fix outputs constantly focusing on new output (#5959)
- Only scroll if it's the 1st output, not for subsequent ones
- Otherwise can't use notebook while a cell is running & regularly updating the outputs
2019-06-10 16:28:59 -07:00
Kevin Cunnane
f05260d95a Fix #5379 markdown Gray code makes code look wrong (#5954) 2019-06-10 14:29:29 -07:00