-
Notifications
You must be signed in to change notification settings - Fork 125
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 ec7bc69. |
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]>
|
Thanks @worksofliam ; I modified the code per your requests and fixed the types generation. |
Signed-off-by: Seb Julliand <[email protected]>
Signed-off-by: Seb Julliand <[email protected]>
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). |



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