* update python fwlinks and remove bundle ver
* start fixing path for users with python 36
* prompt user for python version upgrade
* update python path after removing 3.6
* prompt users to upgrade and show pkg warning
* make prompt async
* remove python bundle ver from ML extension
* shutdown python 3.6 before deleting
* check useExistingPython before update prompt
* add dont ask again option
* remove 3.6 after installing 3.8
fix merge conflict
* give option to remove python36
* list user installed pip packages in warning
* create notebook to install pip packages
* update getPythonExePath method and add comments
* clean up code
* add comments
* pr comments
* add comment
* remove option to keep python36
* shutdown active servers before removing python36
* fix error removing old python w/ path change
* update to 3.8.10
* restart sessions for mac/linux
* start work on ui
* Move notebooks complete
* Simplify version handling
* fix issues with add section method
* fix issues with the edit experience and add the quick pick for editing
* add version handler for re-writing tocs
* fix book toc manager tests
* add notebook test
* fix localize constant
* normalize paths on windows
* check that a section has sections before attempting to mve files
* Implement method for renaming duplicated files
* moving last notebook from section converts the section into notebook
* Add recovery method restore original state of file system
* Add clean up, for files that are copied instead of renamed
* remove dir complexity
* divide edit book in methods for easier testing and remove promise chain
* Keep structure of toc
* normalize paths on windows
* fix external link
* Add other fields for versions
* fix paths in uri of findSection
* add section to section test
* Add error messages
* address pr comments and add tests
* check that the new path of a notebook is different from the original path before deleting
* Add setting for max number of expanded books
* Remove extra commas
* Add setting for expanding/collapsing books at root level
* Change typo in name of setting
* Change default value to false
* Add open book option in UI
* Add dropdowns option on dialog
* Add flow logic
* Fetch releases and validate URL
* Add class for github books and shared file books
* Change code structure
* Unblock local copy + stack overflows
* Download books from github
* Remove unused files
* Clean code and use the openNotebookFolder command to open remote book
* Checkpoint
* Refactor remote book dialog model to only hold data
* Remove ApiWrapper and refactor createlocalcopy method
* Use sinon js framework instead of typemoq for testing remotebookController
* Remove api wrapper
* Add some tests
* Add more tests and address pr comments
* Address PR comments
* Fix remotebook broken tests
* Add download location in output channel and use openBook command
* Address PR comments
* Fix typos, print error message and remove failing test
* Print error message
* Separate tests in different files
* Declare controller variable inside extension.tst
Co-authored-by: chlafreniere <hichise@gmail.com>
* initial commit
* Add Reveal in Books editor tab context option
* Select item in books viewlet automatically
* changes
* easier than i thought it'd be
* added file watcher on toc file v1
* Merge from Feat/create book
* Undo Merge from Feat/create book
* Use fsPath instead of path
* repen book on toc update
* update book in-place
* fix close book
* error handling for closeBook
* PR comments
* addressed comments
* moved the watch block to try ,watch vs watchFile
Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
* Add Reveal in Books editor tab context option
* Select item in books viewlet automatically
* changes
* easier than i thought it'd be
* Merge from Feat/create book
* Undo Merge from Feat/create book
* Use fsPath instead of path
* PR comments
* Fix tests
Co-authored-by: Maddy <12754347+MaddyDev@users.noreply.github.com>
* added secondary action
* create book command
* open as untitled
* create toc.yml and update title
* added comments
* throw error if filenames have unsupported chars
* update prompt message
* remove the toLocaleLower
* added await
* moced createbookpath out of the command handler
* removed tolocalelower and added comments
* moved the formatting and file handling code from core to notebook
* fixes for contents with folders
* collapse the code cell
* remove output
* reused existing command to open book
* comment typu and added await
* add saved/untitled views to the books viewlet and provide save option to untitled
* addressed comments
* fixes after merge
* await on async methods
* reverted back
* await on promise
* added localize for books view names
* initial commit
* missed a file change
* changes to make the merges work part1
* fixes after merges 2
* getChildren to get all books
* chnages to address comments
* fsPromises instead of fs.readSync
* merged master
* replaced deprecated fs.exists async call with pathExists
* renamed method
* initial commit
* fix: added initialize method to fix the previous/next links rendering
* added checks
* open first markdown/ipynb in the book ans expand the view
* added launch book from command pallete, removed the pick folder and save option added launching the first notebook/markdown
* moved the open book command pallet action from mssql to notebooks
* open as untitled to true
* opening markdown files issue fix
* removed opening as untitled files
* open ipynb files as untitled and changes for previous&next links to work
* add books as seperate viewlet
* localize double quote issues and renamed treeCollapsibleState
* renames and added logic to conditionally show Preview command
* moved registerCommands from widget to extension contribution
* isEditorUntitled check
* async comment updates
* formatting issues.
* promisfying the async calls
* moved existsAsync to top
* Touchbar icon support in notebooks
- updated shortcut keys to only work if notebook is active
- Added icons
- Now have 1 "add cell" icon that prompts for code/text.
This is useful as there wasn't an icon to differentiate
This was reviewed / worked on with Smitha and will be signed off on by PM via mail.
1 thing left (make run button look better when not selected) will be one in separate review.
Changes
- Add top/bottom padding to editor so it's not cramped
- Added an (on by default) setting `notebook.overrideEditorTheming`. This controls whether new colors etc. are used for notebook editors or if users should see vanilla UI like in standard editor. Settings under this flag are:
- When unselected, editor has same color as toolbar. On selection it goes back to regular editor view so colors work "right"
- In standard light/dark themes we now use a filled in background color instead of border box.
* Ported Analyze notebook code from SqlOpsStudio and make it work.
if config.notebook.sqlKernelEnabled is true, use SQL provider;
Use Jupyter provider if Python is install, otherwise use buildIn Kernel.
* Analyze in Notebook Kernel can only be Python or "No Kernel". So remove Sql Kernel.
initial support for Notebook extensibility. Fixes#3148 , Fixes#3382.
## Design notes
The extensibility patterns are modeled after the VSCode Document and Editor APIs but need to be different since core editor concepts are different - for example Notebooks have cells, and cells have contents rather than editors which have text lines.
Most importantly, a lot of the code is based on the MainThreadDocumentsAndEditors class, with some related classes (the MainThreadDocuments, and MainThreadEditors) brought in too. Given our current limitations I felt moving to add 3 full sets of extension host API classes was overkill so am currently using one. Will see if we need to change this in the future based on what we add in the additional APIs
## Limitations
The current implementation is limited to visible editors, rather than all documents in the workspace. We are not following the `openDocument` -> `showDocument` pattern, but instead just supporting `showDocument` directly.
## Changes in this PR
- Renamed existing APIs to make clear that they were about notebook contents, not about notebook behavior
- Added new APIs for querying notebook documents and editors
- Added new API for opening a notebook
- Moved `New Notebook` command to an extension, and added an `Open Notebook` command too
- Moved notebook feature flag to the extension
## Not covered in this PR
- Need to actually implement support for defining the provider and connection IDs for a notebook. this will be important to support New Notebook from a big data connection in Object Explorer
- Need to add APIs for adding cells, to support
- Need to implement the metadata for getting full notebook contents. I've only implemented to key APIs needed to make this all work.