* vBump to 1.2 with release notes and candidate SqlToolsService build.
- Download center build version will be updated in a separate PR but this one can be used for testing
Fixes#978: adds a new status indicator for Language Flavor so that users can choose MSSQL or None for provider type. If None then MSSQL intellisense and syntax checking are skipped.
* Fix #939 Allow messages to display run time for each batch when there are multiple batches
- Added this feature behind a config flag
- Some time parsing fixes to support this
* Fix#933 support Mac versions lower than Sierra
- Added version check to detect macOS versions lower than Sierra (10.12.0). If this is discovered, use the v1.0 version of the tools service and disable new features
- Updated downloader to fall back to v1 version and added tests to verify this
- Added handling in new commands (use of Integrated Auth and execute current statement) to return an error to the user.
* Execute current statement at cursor location
* Refactor to add explicti runStatement methods
* Fix a couple bugs
* Bump SQL Tools Service to latest build
* Add null check to fix test breaks
* Fix another test break
* Fix#807 Can't create SQL Profile
- Use the fault-tolerant jsonc-parser
* Removed invalid test expecting exception on JSON parse
- Created tracking issue to cover need to handle truly corrupted mssql.connections section
* Upgrade and fix most tests
- Upgrade to .Net Core 2.0 in SqlToolsService
- Upgraded TypeMoq to fix multiple tests
* Fix tests broken due to TypeMoq update
- Loose vs Strict mode behavior has changed. Given we initially added strict mode to catch regressions and these are now very stable parts of the code, it seems fine to use Loose mocking and allow the passthroughs to be used.
- Other change was due to assert.equal changing. Before it would return true on deep object equality but it no longer seems to work. Added clear property-level validation in some cases to fix this.
* Fixed issue running test from cmdline locally
* Fix for AppVeyor test fail issue
- This is caused by https://github.com/Microsoft/vscode-extension-vscode/issues/64 and will be fixed in the 1.14 release of VSCode
* Attempt to fix travis build without using deprecated group value
- Investigating similar issues causing failure to find apt-get packages led to https://github.com/travis-ci/travis-ci/issues/5252. The solution may be to run apt-get update first.
* Stop using localized constants in debug logged strings
- Fixes#867
- There is no benefit in using localized constants when logging to the debug console. It's not user visible, it is only useful when debugging the extension during development
* Fix build break and update xlf file
- Fixed build break due to uglify-js changing multiple behaviors in its v3 Harmony release. Binding to v2 instead
- Missed updating the xlf file that generates the localizedConstants.ts file.
- If a profile contains a connection string, it will be directly used to connect
- Users can add profiles with connection strings by giving the string at the server prompt
- Connecting with a connection string overrides any other parameters that are set
* Changes to vscode-mssql extension allowing empty passwords for SqlLogin
* Added in testing and cleaned up code
* Cleanup and ConnectionProfile type check
* VBump for GA Release
- Fixes#828
- Fixes#829
Updated package version, added release notes and changelog data. Note: did not update SqlToolsService as we're working to get a 1.0 build with all bits uploaded to GitHub. That will be done in a separate PR.
* Fix#782 UI for Export as Excel
- Added support for the saveAsExcel operation that has been added to the SqlToolsService
- Updated tests to cover new scenario
- Open Excel files in default program on the machine since VSCode won't / can't display this
- Add Excel icons
* SqlToolsService 0.3.0 release target
* Copy should not add new line at end (#717)
- Fixes#715. Should not copy & paste with newline at the end since this overwrites cells in Excel
* Telemetry fix: promise.all not receiving promises (#723)
- Promise.all requires either an array of PromiseLike objects or objects of type T. A change when upgrading to Typescript 2.1.5 caused us to pass in the functions, rather than the promises returned by those functions as previously happened. This meant that Promises.all returned immediately as it thought it was returning an array of functions.
- Fix is to explicitly define the promise return types, and go back to calling the methods so that we get promises back to wait on.
* SqlToolsService update to 0.3.0.1
* Target Download Center for 0.3.0 release
* Fixing regression where null cells are copied as blank strings (#736)
- Fixes#734, a regression where null cells are copied as blank strings
- To fix checksum issue on installing chrome for unit testing, now ignoring checksums
* SqlToolsService 0.3.0.2 Update
* Fix CI test runs broken by gulp-remote-src (#743)
- gulp-remote-src v0.4.2 breaks the vscode test runner due to https://github.com/ddliu/gulp-remote-src/issues/11. This fixes the issue for us by explicitly binding to 0.4.1 which still works
* Fix#711 MSSQL Extension will not run (#744)
- Fixes#711 MSSQL Extension will not run
- Update GetWindowsArchitecture to use new, simpler and more reliable method taken from the Omnisharp-VSCode implementation
- Fixed issues where we were not returning promises as expected, and where we were accessing the _connectionManager even though it was not defined yet, since the extension was still initializing. This will help with overall reliability
- Added test to verify handling of null ConnectionManager
* SqlToolsService 0.3.0.4
* SqlToolsService 0.3.0.5
* Fix changelog open broken by VSCode 1.10.0 (#750)
- Opening a local file in the HTML Preview pan is broken in 1.10. It looks like this is a bug in VSCode that isn't in the Insiders build
- Moving to opening the Master changelog.md in the users default browser instead. This is consistent with our GettingStarted action.
* Fix dates in changelog
* SqlToolsService 0.3.0-alpha.14
* Update VSCode NPM to 1.0.5
- Fixes issue where we needed a temporary fork to run CI tests. Issue is resovled in latest version.
* manually placing vscode typings
* cleaning up semantic typing errors
- Config option was not setup to support discovery of the "saveAsCsv.IncludeHeaders" option - it only gave an empty object instead of the true/false option that's standard for other settings. Updated & verified that the option is still correctly passed through to the SqlToolsService
- Updated release notes, readme & changelog to reflect new release
- Updated Readme to include all config options
* Switch publisher in telemetry test to ms-mssql (#556)
* Switch publisher in telemetry test to ms-mssql
* Update a couple more hard-coded publisher references.
* Fix Results Panel not Refreshing Automatically (#670)
- Fixes#669
- Ensures that TextDocumentContentProvider.provideTextDocumentContent always provides an updated string when being refreshed. In VSCode 1.9.0, it's vital to do this as there is a diff on the provided content and the document is only refreshed if this is different
- Updated release version
* adding wrapper functions
* added configuration option for splitPaneSelection
* changed to switch statement
* moved helper functions into sqloutputcontentprovider
* adding test and uncommenting out some of the sqloutputtests
* small test fix
* cleaning up output test file
* updated to enum
* addressing issues
* fixed test verbage
* added new settings to package and as a constant
* newlines removed from copied text
* changed result formating to replace newlines with tabs
* fixed comment issue
* pushed back the display newline removal to app.component
* changed newline comment
* put the newline replace in the textformatter
* showing download progress in the output window
* added note when installing the service that the commands are not available
* added icon to the status bar when downloading and isntalling
Fixes#368.
- Added a config option to support copy with column name header. Defaults to false to match SSMS behavior
- Support this during the copy event
- Context menu support for both Copy and Copy with Headers
- Unit tests will be added once the main unit test PR for the ResultsView is merged, since this has the necessary hooks and files.
- includes tests to cover all inputs to copyResults
* setup initial websocket communication
* websockets integrated into rendering
* added completion event
* removed dead code; fixed race condition in websockets; fix bug in sending data to a closed ws
* v bump
* cleaned up code
- Included a new launch config that supports running with code coverage.
- Coverage is stored in a coverage folder as both LCOV file and HTML report (in sub folder)
- Added new scripts in our build machine to run with code coverage. Will enable a run that uses code coverage once this is merged
- To view code coverage while developing, install the LCOV VSCode extension, enable it and then hit F1 -> LCOV Menu -> Enable Decorations. This will highlight covered / missed lines in green and red.
Note: The HTMLContent codebase is not currently covered. With recent changes to minify this it breaks the remapping tool we use.
Detailed notes
- Coverage uses a config file to load settings. This is copied at the start of each task
- If tests fail, the process exit code will be 1. We should still write out code coverage in these cases as this is a useful detail even on runs with some test failures.
- On Windows, the extension is loaded (pulling in all source files via require) before the test runner is configured. Since instrumentation happens by hooking the require call, this meant that instrumentation never happened on Windows. To resolve this, we invalidate the Module cache for our source files so they are reloaded the next time anything requires them. At this point they are instrumented as expected. There is a minor risk to this if we had some global state or deeper integration test, but this doesn't impact any existing unit tests and is needed to unblock code coverage
* Skip coverage of HTMLContent due to crash
- With the latest HTMLContent changes to minify & uglify the code, the remap-istanbul component responsible for js -> ts remapping crashes trying to parse the sourceMap entries in the file. This is due to lack of whitespace between code which it expects - basically, it's not set up to run against such compact code
- Disabling coverage of this part of the code until this issue is resolved
* added select all event to context menu; added events for save as and select all
* added shortcuts to context menu when present
* fixed build errors
* fixed select all
* added refresh (#195)
* fixed null values in grid (#218)
* added config
Adding a new command for cancelling queries
* WIP
* Creating a cancelling spinner
* Removing keyboard shortcut as per @erickangMSFT
* Changes as per code review feedback
* Fit and finish for CTP1 connection functionality
* Fix so that MRU items not associated with a profile forget passwords
* Minor UI string change
* Addressing feedback
* Minor bugfix related to saving authentication type for MRU items
* Prevent saving plaintext passwords on new profiles
* Fix issue with MRU ordering edge case
* Changed commands from 'MSSQL' to 'MS SQL'
* Rename 'Switch database' -> 'Change database'
* Fix capitalization
* Added disconnected state for new SQL files
* Limit status bar text length
* Finalized tooltip text for connection status
* Added log messages for connect events
* Fix broken unit test
* Minor changes
* Addressing feedback
* Revert change to execute query shortcut
* Add openLink pipe line
* Change post data
* Handle save from untitle file
* Open file with content
* Add formatter for xml field
* Open xml links in new editor pane
* Remove extra space
* Pretty print xml
* Remove console.log
* Delete .BROWSE.VC.DB-shm
* Delete .BROWSE.VC.DB-wal
* Code cleanup
* Make enableAsyncPostRender an input into slickgrid
* Remove Xml FieldType
* Showing an error in the status bar if downloading the service failed. Hiding the installed service message after 5 seconds
* updating vscode-languageclinet to 2.5.0
* Initial commit of profile file saving support
* Fix path used on mac/linux
* Fixed issue with loading profiles from settings file
* Refactored out file logic to separate class to fix tests
* Fixed all existing tests
* Fixed unhandled exceptions leaking in tests
* Added unit tests for connection config
* Minor fix for edge case
* Addressing feedback
* MRU support in ConnectionStore
- Core functionality including tests to support most recently used list
- Configuration option to let users define the size of the MRU list
* Recent Connection added on Connect
- ConnectionManager.Connect will save a connection to the recently used list
- Unit Tests added to cover this
- Default value from the user settings is now filtered out as this change caused it to be shown (and we do not want the sample value visible)
* CredentialStore support via ServiceLayer
- Removed Node-based credential implementation as it send password over the command line
- Replaced with implementation via the ServiceLayer
- Improved error handling to catch rejected Thenables
- Removed no longer used npm dependencies
* Save Password fixes
- Renamed RecentConnections to ConnectionStore to accurately reflect status (it stores Profile info and in the future will also have MRU)
- Added a unit test to cover not saving password in the settings. Will update to include in the secret store instead in a future checkin
* Save and Remove password from credential store
- Password is now saved to credential store and removed from it when RemoveProfile is called
* ConnectionUI constructor requires ConnectionStore
* Fix casing for Credential objects
* Multiple fixes for Connection Behavior
- Integrated authentication handled correctly in the Create Profile workflow
- Error Handling in the main events so that rejected promises are not lost
- Handle Escape from Connection workflows correctly
* Use SqlLogin as authenticationType
* Use VSCodeWrapper for calls to ShowErrorMessage
* Update Nuget Dependency to 0.0.8
Added AuthenticationType as an option in the Create Profile workflow.
Created new test class and added a single test to verify the basic question flow.
TODO: Add serialization of this property across the API boundary and more tests
* Refactored the project to run the front end code as a separate npm package
* Added Slickgrid as UI component rather than Backgrid
* Added Gulp scripts for building
- Renamed actions to "Create Connection Profile", "Remove Connection Profile"
- Plumbed these through the UI
- Refactored Connection workflow to use new prompt flow
TODO:
- Unit Testing
- Most code can now move to ConnectionManager if we want and be unit tested. There are now minimal UI dependencies
Add in a standard VSCode pattern for applying a series of questions in a workflow. This is adapted from the Bower VSCode plugin's pattern. The chief difference is it has an opportunity to apply changes when set. Updated the Register Connection command to use this.
- Fixed issue where service was called with "dotnet.exe" instead of "dotnet", which breaks Mac usage
- Added dummy commands for Register Connection and Unregister Connection
- Added the Register Connection dummy command as an option in the "Connect" command palette list. This will eventually enable users to connect without needing to manually edit the settings file
- Fixed issue where prompt for password didn't work as the prompt code was commented out
- Fixed issue where hitting ESC to cancel wasn't respected - it showed the "Retry" message box
- Refactored Connect code to make it easier to add multiple prompt for inputs in the workflow
* Hook Language Service client into VS Code.
* Hook servicehost into connection events
* Clean up connection code and add source comments
* Fix merge error in package.config
* Fix tslint errors