-
Notifications
You must be signed in to change notification settings - Fork 124
Actions/Custom Variables/Profiles overhaul #2942
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
|
👋 A new build is available for this PR based on c9fc476. |
worksofliam
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initial review :)
Signed-off-by: Seb Julliand <[email protected]>
|
👋 A new build is available for this PR based on f995092. |
Signed-off-by: Seb Julliand <[email protected]>
|
👋 A new build is available for this PR based on 744abdd. |
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
chrjorgensen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sebjulliand As you know, I'm currently traveling, so I haven't got the time for a thorough review but just played around a little.
Nice work, which will simplify the concept of profiles. 👍
Two comments:
- After creating a new profile and copying a command, the context view is not refreshed and I didn't see the new command until a manual refresh.
- Could we have the active profile attached to the connection name in the status bar, like "System (profile)"?
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
|
Thanks for having a look @chrjorgensen ! I fixed the refresh issue and added the profile name in the status bar (unless it's the default profile being used). |
|
@sebjulliand I was a bit busy this week so I didn't get a chance to take a look at this PR yet. I will have a look next week! |
Much appreciated @SanjulaGanepola , thanks a lot ! |
SanjulaGanepola
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sebjulliand After doing some initial testing, I noticed a couple issues (commented below). I still plan on reviewing the code changes more in-depth.
One question: How did you get the name Context view? I am fine with calling it that, but here are also some other names I just thought could make sense: Environment Manager or Configuration Browser (not sure if this one could be confusing tho since VS Code settings are also referred to as configurations). Just throwing out ideas. What do you think?
But I agree this may be confusing. How about
arrow-circle-leftsincearrow-circle-rightis used to activate the profiles?
I also agree that the refresh icon is a bit confusing. How about sign-in and sign-out?
|
Shall we also link these issues:
Looks like you have most of those requests covered here in this PR! |
|
Also want to add my 2c... 😄
I agree that And for the icons, I propose having the |
|
Thank you @SanjulaGanepola , @chrjorgensen ! I'll look into that. As for the icon, I like sign-in/out, but I'll give a try to both sign-x and chevron-x and see how it looks. |
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
…ited Signed-off-by: Seb Julliand <[email protected]>
|
Back at you folks, I updated the icons and fixed the reported issues. |



Fixes #2618
Fixes #1451
Changes
This PR introduce a new

Contextview as a replacement to theConnection Profilesview.It is intended to enhance the user experience regarding the management of Actions, Custom Variables and Profiles.
It also introduces a new
CustomEditorclass that works likeCustomUIbut allows to open custom editors instead of custom panels.Actions
Actions are regrouped in three local categories, always displayed:
Optionally, there will be additional categories for each workspace declaring local actions (in a local
.vscode/actions.jsonfile). These categories are named after the workspace they come from.The actions available at the

Actionsnode level are:Create a new action
Setup local actions
Search actions
search match.Go to next search result
Clear search results
Creating a new action is also available on each

Action Typenode.Clicking on an action opens the action editor. Making a change to the action will make the editor dirty and saving the action is done like in any editor, using

Save(ctrl+s). The action panel was simply turned into an editor.Right-clicking on an action gives access to these options:

Standard actions and local actions are managed the same way in the UI; they are saved in the connection settings or in the local workspace file depending on their nature.
When an editor is open, an inline action is available on each action to run it on the active editor:

Checking of the action can run on the active editor is done when the action is executed.
Custom Variables
Each variable declared in the current connection settings are listed here and can be created/changed/deleted from this view.


Clicking on variable lets you change its value.
Profiles
Command profiles and Connection profiles have been merged - a process will run when the extension starts to create profiles out of existing Command profiles and show a dialog to warn the user the Command profiles have been migrated.
Profiles can be created from the

Profilesnode using one of these inline actions:Clicking on a profile opens the Profile editor that lets the user change some of the profile settings - object filters, IFS shortcuts and Custom variables are simply listed:


Right-clicking on a profile gives access to these options:

Activating a profile is done using the related inline action on the profile:

Activating a profile will replace the current settings with the profile's. Before the settings are replaced, they are saved back into the profile they belong to, or into the default profile if no profile was active (default profile is a unique profile with no name). This allows to automatically save the profile state before it gets erased.
The active profile is shown in green in the list, and it can't be deleted:

Its name is shown in the context description as well:

Switching back to the default profile is done using the action that appears on the Profiles node inline actions:

When a profile has a Library List Command (formerly a

Command Profile), that command is ran and the library list is computed from it when the profile is activated. That operation can be re-run after the profile is made active by clicking the inline action on the profile item (the action only shows up if that profile has a library list command):How to test this PR
a. Try generating local actions and make sure they are managed correctly in the local file
a. Make sure custom variables are saved on the profile
b. Make sure settings are correctly saved into the profile so they don't get lost when re-activating it
c. Make sure the UI is consistent with the profile's content (views must be refreshed, etc)
Checklist