* swap rename to use DacFx project apis
* add support for rename pre/post deploy scripts and add tests
* update the enum names too
* check instanceof instead of getting and iterating through all the collections
* Set target platform for mssql vscode extension- create project from db feature
* Addressed comments
* Address comment to add EngineEdition information in vscode-mssql.d.ts
* Adding prompt for project name
* Updating test
* PR feedback
* Fixing rename logic so that folder is also named according to project
* Updating autorest test to confirm rename
* Giving user option to install autorest globally or run via npx
* Adds message for when no files are generated (no models in spec)
* Adding test
* Reinstating the rest of the test suite
* PR feedback
* Fixing tests to stub new prompt when test runner doesn't have autorest installed
* PR feedback
* fix typo
* fix typo
* Initial changes
* checkpoint
* Constructing project with post deployment script
* Correcting to intentionally read from cached list of projects
* Adding activation event, fixing fresh workspace bug
* Convert netcoreTool and autorestHelper to share a helper class for streamed command
* Include npm package version to force update
* test checkpoint
* Unit tests
* Added contextual quickpicks for autorest dialogs
* Adding projectController test
* Added projectController test, some refactoring for testability
* Merge branch 'main' into benjin/autorest
* Fixing 'which' import
* PR feedback
* Fixing tests
* Adding additional information for when project provider tests fail
* Hopefully fixing failing tests (unable to repro locally)
* Adding Generate Project item to workspace menu
* PR feedback
* Automatically add intermediate folders for SQL project items.
While using the SQL database projects through the API, I noticed that project may end up in somewhat inconsistent state, where files will be added to the project, but their parent folders will not. This in turn resulted in failure to remove these folders from project - they will show up in the UI tree, but deleting them will cause an error. In order to align with how Visual Studio manages the projects, this change will ensure that all intermediate folders are present in the project, when new files or folders are added.
While this change improves project "correctness" when accessing it through SQL projects extension APIs, there is still a possibility that someone will open an "incorrect" previously created project. This change does not address it and folder removal may still fail.
* Update the code to never throw on duplicate items when adding files and folders to project.
After a conversation with the sqlproj owners, we agreed that there are no scenarios that would prompt us to throw an error, if duplicate item is being added to the project. Ultimately, the goal of such a request would be to have an item in the project file, which is already present, therefore the call becomes a no-op.
This allowed me to simplify the new code that was ensuring all intermediate folders are present in the project when adding files and folders.
* First set of changes for workspace dashboard implementing the toolbar
* Workspace dashboard container implementation (#14813)
* First set of changes for workspace dashboard implementing the toolbar (#14160)
* First set of changes for workspace dashboard implementing the toolbar
* Addressed comments
* Addressed one remaining comment
* Removed an extra comma in interfaces file
* Addressed comments
* Addressed comments
* Refactored a bit of code
* Remove unnecessary await
* Addressed comments
* First set of changes for workspace dashboard container
* Update targetPlatform icon+add Time column to deploy table
* Addressed comments
* Removed redundant class definition
* Addressed comments
* Addressed comments
* Change enum to union type in dataworkspace typings
* Fix tests
* Addressed comments
* relative paths written to sqlproj, but can't delete yet
* only keep track of relative path
* remove leading slash
* add test
* use path.relative
* Add error message if dacpac reference is located on a different drive
* UI hook up
* Add tests
* Add back the missing statement for opening project
* Fix failures
* Add a few more tests
* Fix test failure
* Addressed comments
* Update UI to match the mocks
* Update UI to match updated mockups
* Addressed comments to match UI with mockup
* Updated all import strings to be called as Create Project From Database strings
* Fix a couple of test failures and one comment addressed
* Update one missed import string
* Skipping a failing test for now
* Fix failures. Fix alignment of icons
* Addressed PR comments
* Addressed couple more PR comments
* Fix project context menu actions (#12541)
* delete works again
* make fewer changes
* update all sql db project commands
* cleanup
* Remove old projects view (#12563)
* remove old projects view from file explorer view
* fix tests failing
* remove projects in open folder opening up in old view
* Update db reference dialog to show projects in the workspace (#12580)
* update database reference dialog to show projects in the workspace in the project dropdown
* remove workspace stuff from sql projects extension
* undo change
* add class that implements IExtension
* undo a change
* update DataWorkspaceExtension to take workspaceService as a parameter
* add type
* Update sql database project commands (#12595)
* remove sql proj's open and create new project from comman palette
* hook up create project from database to data workspace
* rename the remaining import databases to create project from database
* remove open, new, and close commands
* expose addProjectsToWorkspace() in IExtension instead of calling command
* Addressing comments
* fix failing sql project tests (#12651)
* update SSDT projects opened in projects viewlet (#12669)
* fix action not refreshing the tree issue (#12692)
* fix adding project references in new projects viewlet (#12688)
* Remove old projects tree provider (#12702)
* Remove old projects tree provider and fix tests
* formatting
* update refreshProjectsTree() to accept workspaceTreeItem()
* Cleanup ProjectsController (#12718)
* remove openProject from ProjectController and some cleanup
* rename
* add project and open project dialogs (#12729)
* empty dialogs
* wip
* new project dialog implementation
* revert gitattributes
* open project dialog
* implement add project
* remove icon helper
* refactor
* revert script change
* adjust views
* more updates
* make data-workspace a builtin extension
* show the view only when project provider is detected (#12819)
* only show the view when proj provider is available
* update
* fix sql project tests after merge (#12793)
* Update dialogs to be closer to mockups (#12879)
* small UI changes to dialogs
* center radio card group text
* Create workspace if needed when opening/new project (#12930)
* empty dialogs
* wip
* new project dialog implementation
* revert gitattributes
* open project dialog
* implement add project
* remove icon helper
* refactor
* revert script change
* create workspace
* initial changes
* create new workspace working
* fix tests
* cleanup
* remove showWorkspaceRequiredNotification()
* Add test for no workspace open
* update blue buttons
* move loading temp project to activate() instead of workspaceService constructor
* move workspace creation warning message to before project is created
* pass uri to createWorkspace
* add tests
Co-authored-by: Alan Ren <alanren@microsoft.com>
* Additional create workspace changes (#13004)
* Dialogs workspace updates (#13010)
* adding workspace text boxes
* match new project dialog to mockups
* Add validation error message for workspace file
* add enterWorkspace api
* add warning message for opening workspace
* cleanup
* update commands to remove project so they're more generic
* remove 'empty' from string
* Move default project location setting to data workspace extension (#13022)
* remove project location setting and notification from sql database projects extension
* add default project location setting to data workspace extension
* fix typo
* Add back project name incrementing
* other merge fixes
* fix strings from other PR
* default to last opened directory instead of home directory if no specified default location
* A few small updates (#13092)
* fix build error
* update title for inputboxes
* add missing file
* Add tests for data workspace dialogs (#13324)
* add tests for dialogs
* create helper functions
* New project dialog workspace inputbox fixes (#13407)
* workspace inputbox fixes
* fix folder icons
* Update package.jsons and readme (#13451)
* update package.jsons
* update readme
* add workspace information to open existing dialog (#13455)
Co-authored-by: Alan Ren <alanren@microsoft.com>
* Added Tools Service call for ValidateStreamingJob
* Partial addition of ESJ
* adding test mocks
* Validation working
* Modifying command visibility logic to submatch ESJs in addition to files
* Changed string literal to constant, corrected attribute order
* Added tests
* correcting casing that's causing test failures on linux
* Swapping Thenable for Promise
* excluded validate from command palette
* Add quick pick to select target platform for a project
* add test
* show current target platform and info message for new target platform
* fix test failing
* remove ItemGroup if node being removed is the only one
* fix for if ItemGroup has elements with different tag names
* fix for ItemGroups not at the end of the sqlproj
* add delete for db references
* fix failing tests
* add test
* cleanup
* Addressing comments and fixing a string
* add projects to add database reference dialog
* able to add project references
* check for circular dependency
* only allow adding reference to project in the same workspace
* fix location dropdown when project reference is enabled
* add tests
* more tests
* cleanup
* fix flakey test
* addressing comments