Releases: johnpapa/vscode-peacock
v3.0.0
3.0.0
Migration
- Version 2 of Peacock stored the peacock color in a memento. Version 3 of Peacock stores the color in the settings. If the v2 memento exists, Peacock gets the color, removes the memento, and writes the color to the settings. Fixes #230
Features
- Commands
Copy the Current Color to the Clipboard
- Shows the current color and copies it to the clipboard- This command can be executed from the command palette or by clicking the statusBar item for peacock's color
Peacock: Reset Workspace Colors
- Removes any of the color settings from the.vscode/settings.json
file. If colors exist in the user settings, they may be applied- This used be named
Peacock: Reset Colors
and was renamed for clarity
- This used be named
Peacock: Remove All Global and Workspace Colors
- Removes all of the color settings from both the Workspace.vscode/settings.json
file and the Global usersettings.json
file.
New Settings
-
Removed remote colors and live share colors from mementos and instead created user settings for these. Mementos are best for values the user cant see, while settings make it easier for the user to see them and modify them directly. This feels right for these colors.
-
Peacock now separates when colors will be applied (workspace color customizations) from when the
peacock.color
is saved. When a user applies Peacock colors, applyColor is called and we also updatepeacock.color
. When the color just needs to be applied, but not written, we just called applyColor.
-
New settings are as follows:
-
peacock.color
- The Peacock color that will be applied to workspaces- currently selected local color. this replaced the workspace memento for the current/recent color, which may solve reported problems with mysterious colors changing (because workspace settings are visible, get removed by peacock commands, and users can manually edit them).
-
peacock.remoteColor
- The Peacock color that will be applied to remote workspaces- currently selected remote color. color for all types of remote environments (ssh, wsl, containers). this consolidates the 3 into 1.
-
peacock.vslsShareColor
- Peacock color for Live Share Hosting -
peacock.vslsJoinColor
- Peacock color for Live Share Joining
-
Breaking Changes
- Remove commands for remotes as we now just use the other commands to change the color while you are in a remote.
Change Remote Color (SSH)
- prompts user to select a color for the SSH remote context from the FavoritesChange Remote Color (Containers)
- prompts user to select a color for the Containers remote context from the FavoritesChange Remote Color (WSL)
- prompts user to select a color for the WSL remote context from the Favorites
- Remove the existing current color memento (replace with peacock.color)
- Remove the existing remote color settings/mementos (replace with peacock.remoteColor)
DevOps
- Adding code coverage and test reporting to Azure Pipelines
- Added several new tests for testing the
peacock.color
andpeacock.remoteColor
Bug Fixes
- When trying the favorites out in the quick pick list, continually selecting a new one, but not selecting one, Peacock would start looping thru colors in a rapid fashion and never stop. This has been corrected.
- Peacock used to copy any extra workbench.colorCustomizations in the global user settings.json to the workspace, because the get configuration API in vs code get a merged set of settings. This has been refactored to only get the colors that are in the workspace and the Peacock uses. This now uses
read-configuration.ts
'sgetColorCustomizationConfigFromWorkspace
function
v3.0.0-rc.4
3.0.0-rc.4
Migration
- Version 2 of Peacock stored the peacock color in a memento. Version 3 of Peacock stores the color in the settings. If the v2 memento exists, Peacock gets the color, removes the memento, and writes the color to the settings. Fixes #230
Features
- Commands
Copy the Current Color to the Clipboard
- Shows the current color and copies it to the clipboard- This command can be executed from the command palette or by clicking the statusBar item for peacock's color
Peacock: Reset Workspace Colors
- Removes any of the color settings from the.vscode/settings.json
file. If colors exist in the user settings, they may be applied- This used be named
Peacock: Reset Colors
and was renamed for clarity
- This used be named
Peacock: Remove All Global and Workspace Colors
- Removes all of the color settings from both the Workspace.vscode/settings.json
file and the Global usersettings.json
file.
New Settings
-
Removed remote colors and live share colors from mementos and instead created user settings for these. Mementos are best for values the user cant see, while settings make it easier for the user to see them and modify them directly. This feels right for these colors.
-
Peacock now separates when colors will be applied (workspace color customizations) from when the
peacock.color
is saved. When a user applies Peacock colors, applyColor is called and we also updatepeacock.color
. When the color just needs to be applied, but not written, we just called applyColor.
-
New settings are as follows:
-
peacock.color
- The Peacock color that will be applied to workspaces- currently selected local color. this replaced the workspace memento for the current/recent color, which may solve reported problems with mysterious colors changing (because workspace settings are visible, get removed by peacock commands, and users can manually edit them).
-
peacock.remoteColor
- The Peacock color that will be applied to remote workspaces- currently selected remote color. color for all types of remote environments (ssh, wsl, containers). this consolidates the 3 into 1.
-
peacock.vslsShareColor
- Peacock color for Live Share Hosting -
peacock.vslsJoinColor
- Peacock color for Live Share Joining
-
Breaking Changes
- Remove commands for remotes as we now just use the other commands to change the color while you are in a remote.
Change Remote Color (SSH)
- prompts user to select a color for the SSH remote context from the FavoritesChange Remote Color (Containers)
- prompts user to select a color for the Containers remote context from the FavoritesChange Remote Color (WSL)
- prompts user to select a color for the WSL remote context from the Favorites
- Remove the existing current color memento (replace with peacock.color)
- Remove the existing remote color settings/mementos (replace with peacock.remoteColor)
DevOps
- Adding code coverage and test reporting to Azure Pipelines
- Added several new tests for testing the
peacock.color
andpeacock.remoteColor
Bug Fixes
- When trying the favorites out in the quick pick list, continually selecting a new one, but not selecting one, Peacock would start looping thru colors in a rapid fashion and never stop. This has been corrected.
- Peacock used to copy any extra workbench.colorCustomizations in the global user settings.json to the workspace, because the get configuration API in vs code get a merged set of settings. This has been refactored to only get the colors that are in the workspace and the Peacock uses. This now uses
read-configuration.ts
'sgetColorCustomizationConfigFromWorkspace
function
v3.0.0-rc.3
3.0.0-rc.3
Load this by pressing F1 and choosing "Extensions: Install from VSIX" from the vs code command palette and choosing the file below
Features
- Commands
Copy the Current Color to the Clipboard
- Shows the current color and copies it to the clipboard- This command can be executed from the command palette or by clicking the statusBar item for peacock's color
Peacock: Reset Workspace Colors
- Removes any of the color settings from the.vscode/settings.json
file. If colors exist in the user settings, they may be applied- This used be named
Peacock: Reset Colors
and was renamed for clarity
- This used be named
Peacock: Remove All Global and Workspace Colors
- Removes all of the color settings from both the Workspace.vscode/settings.json
file and the Global usersettings.json
file.
New Settings
-
Removed remote colors and live share colors from mementos and instead created user settings for these. Mementos are best for values the user cant see, while settings make it easier for the user to see them and modify them directly. This feels right for these colors.
-
Peacock now separates when colors will be applied (workspace color customizations) from when the
peacock.color
is saved. When a user applies Peacock colors, applyColor is called and we also updatepeacock.color
. When the color just needs to be applied, but not written, we just called applyColor.
-
New settings are as follows:
-
peacock.color
- The Peacock color that will be applied to workspaces- currently selected local color. this replaced the workspace memento for the current/recent color, which may solve reported problems with mysterious colors changing (because workspace settings are visible, get removed by peacock commands, and users can manually edit them).
-
peacock.remoteColor
- The Peacock color that will be applied to remote workspaces- currently selected remote color. color for all types of remote environments (ssh, wsl, containers). this consolidates the 3 into 1.
-
peacock.vslsShareColor
- Peacock color for Live Share Hosting -
peacock.vslsJoinColor
- Peacock color for Live Share Joining
-
Breaking Changes
- Remove commands for remotes as we now just use the other commands to change the color while you are in a remote.
Change Remote Color (SSH)
- prompts user to select a color for the SSH remote context from the FavoritesChange Remote Color (Containers)
- prompts user to select a color for the Containers remote context from the FavoritesChange Remote Color (WSL)
- prompts user to select a color for the WSL remote context from the Favorites
- Remove the existing current color memento (replace with peacock.color)
- Remove the existing remote color settings/mementos (replace with peacock.remoteColor)
DevOps
- Adding code coverage and test reporting to Azure Pipelines
- Added several new tests for testing the
peacock.color
andpeacock.remoteColor
Bug Fixes
- When trying the favorites out in the quick pick list, continually selecting a new one, but not selecting one, Peacock would start looping thru colors in a rapid fashion and never stop. This has been corrected.
- Peacock used to copy any extra workbench.colorCustomizations in the global user settings.json to the workspace, because the get configuration API in vs code get a merged set of settings. This has been refactored to only get the colors that are in the workspace and the Peacock uses. This now uses
read-configuration.ts
'sgetColorCustomizationConfigFromWorkspace
function
3.0.0-rc.2
3.0.0-rc.2
Features
- New Commands
Copy the Current Color to the Clipboard
- Shows the current color and copies it to the clipboard- This command can be executed from the command palette or by clicking the statusBar item for peacock's color
New Settings
-
Removed remote colors and live share colors from mementos and instead created user settings for these. Mementos are best for values the user cant see, while settings make it easier for the user to see them and modify them directly. This feels right for these colors.
-
Peacock now separates when colors will be applied (workspace color customizations) from when the
peacock.color
is saved. When a user applies Peacock colors, applyColor is called and we also updatepeacock.color
. When the color just needs to be applied, but not written, we just called applyColor.
-
New settings are as follows:
-
peacock.color
- The Peacock color that will be applied to workspaces- currently selected local color. this replaced the workspace memento for the current/recent color, which may solve reported problems with mysterious colors changing (because workspace settings are visible, get removed by peacock commands, and users can manually edit them).
-
-
peacock.remoteColor
- The Peacock color that will be applied to remote workspaces- currently selected remote color. color for all types of remote environments (ssh, wsl, containers). this consolidates the 3 into 1.
-
peacock.vslsShareColor
- Peacock color for Live Share Hosting -
peacock.vslsJoinColor
- Peacock color for Live Share Joining
Breaking Changes
- Remove commands for remotes as we now just use the other commands to change the color while you are in a remote.
Change Remote Color (SSH)
- prompts user to select a color for the SSH remote context from the FavoritesChange Remote Color (Containers)
- prompts user to select a color for the Containers remote context from the FavoritesChange Remote Color (WSL)
- prompts user to select a color for the WSL remote context from the Favorites
- Remove the existing current color memento (replace with peacock.color)
- Remove the existing remote color settings/mementos (replace with peacock.remoteColor)
DevOps
- Adding code coverage and test reporting to Azure Pipelines
- Added several new tests for testing the
peacock.color
andpeacock.remoteColor
Bug Fixes
- When trying the favorites out in the quick pick list, continually selecting a new one, but not selecting one, Peacock would start looping thru colors in a rapid fashion and never stop. This has been corrected.
3.0.0-rc.1
3.0.0-rc.1
Features
- New Commands
Copy the Current Color to the Clipboard
- Shows the current color and copies it to the clipboard- This command can be executed from the command palette or by clicking the statusBar item for peacock's color
New scenario documentation
- To help get a better handle on how Peacock behaves, a new scenarios document has been added.
New Settings
-
Removed remote colors and live share colors from mementos and instead created user settings for these. Mementos are best for values the user cant see, while settings make it easier for the user to see them and modify them directly. This feels right for these colors.
-
Peacock now separates when colors will be applied (workspace color customizations) from when the
peacock.color
is saved. When a user applies Peacock colors, applyColor is called and we also updatepeacock.color
. When the color just needs to be applied, but not written, we just called applyColor.
-
New settings are as follows:
-
peacock.color
- The Peacock color that will be applied to workspaces- currently selected local color. this replaced the workspace memento for the current/recent color, which may solve reported problems with mysterious colors changing (because workspace settings are visible, get removed by peacock commands, and users can manually edit them).
-
-
peacock.remoteColor
- The Peacock color that will be applied to remote workspaces- currently selected remote color. color for all types of remote environments (ssh, wsl, containers). this consolidates the 3 into 1.
-
peacock.vslsShareColor
- Peacock color for Live Share Hosting -
peacock.vslsJoinColor
- Peacock color for Live Share Joining
Breaking Changes
- Remove commands for remotes as we now just use the other commands to change the color while you are in a remote.
Change Remote Color (SSH)
- prompts user to select a color for the SSH remote context from the FavoritesChange Remote Color (Containers)
- prompts user to select a color for the Containers remote context from the FavoritesChange Remote Color (WSL)
- prompts user to select a color for the WSL remote context from the Favorites
- Remove the existing current color memento (replace with peacock.color)
- Remove the existing remote color settings/mementos (replace with peacock.remoteColor)
DevOps
Bug Fixes
- When trying the favorites out in the quick pick list, continually selecting a new one, but not selecting one, Peacock would start looping thru colors in a rapid fashion and never stop. This has been corrected.
2.5.0-rc1
Load this by pressing F1
and choosing "Extensions: Install from VSIX" from the vs code command palette and choosing the file below vscode-peacock-2.5.0.vsix
2.5.0
Features
- Peacock now detects when the VS Code Remote extension is installed and adds commands that allow the user to change color depending on the remote context (container, ssh, wsl).
- added
Change Remote Color (SSH)
to commands. Prompts user to select a color for the SSH remote context from the Favorites - added
Change Remote Color (Containers)
to commands. Prompts user to select a color for the Containers remote context from the Favorites - added
Change Remote Color (WSL)
to commands. Prompts user to select a color for the WSL remote context from the Favorites
- added
- added tests for remote features
- Created a new setting for
surpriseMeFromFavoritesOnly
. Defaults to false for backwards compatibility.- When false, a color is chosen purely randomly.
- When true, a favorite color is selected randomly
- Added more logging to the output of mementos and favorites
- Added informational message on startup if "surprise me on startup" is set. One if the color is changed. A different message if the color was not changed because one already existed.
Security
- Bumped lodash version #195
Refactoring
- Created a
mementos.ts
file with mento functions for getting and saving mementos. This consolidates some of the code Peacock has for mementos - Created constants for the peacock core mementos, the vsls mementos, and the remote mementos. Each are in their respective folders and modules
- Created a npm script for
test-all
which compiles and tests all 3 main test groups. Note that that CI only runs the npm script fortest
which covers the core tests only due to remote and vsls not working under test in CI currently- core peacock tests (currently 86)
- peacock vsls tests (currently 8)
- peacock remote tests (currently 7)
- Recent Color State vs Peacock Color Memento
- Recent Color is the most recently used color.
- If you want the original Peacock color, then use getPeacockColorMemento() in mementos.ts
- Example:
- Peacock may be using #fff and Peacock Remote is using #000.
- When using remote, recent color may represent
- the remote color #000 while the memento will always be the original #fff
- Split the setup and teardown calls out to make them easier to read.
- Fix places where async/await calls were being used incorrectly
- Created a timeout function constant for use in tests
- Moved the extension context state to the State static class
- All commands now return extension context for use in tests
- Made getRandomFavoriteColor not return same color as the current color