Skip to content

Conversation

@sebjulliand
Copy link
Member

Changes

This PR introduce a new Context view as a replacement to the Connection Profiles view.
It is intended to enhance the user experience regarding the management of Actions, Custom Variables and Profiles.
image

It also introduces a new CustomEditor class that works like CustomUI but allows to open custom editors instead of custom panels.

Actions

image

Actions are regrouped in three local categories, always displayed:

  • Member actions
  • Object actions
  • Streamfile actions

Optionally, there will be additional categories for each workspace declaring local actions (in a local .vscode/actions.json file). These categories are named after the workspace they come from.

The actions available at the Actions node level are:
image

  • Create a new action

  • Setup local actions

  • Search actions

    • Enables the user to search for actions by their name and command. Each matching action is highlighted in yellow and its description shows search match.
    image
  • Go to next search result

    • Gives focus in the list on the next item that matched the search
  • Clear search results

Creating a new action is also available on each Action Type node.
image

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.
image

Right-clicking on an action gives access to these options:
image

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:
image

Checking of the action can run on the active editor is done when the action is executed.

Custom Variables

image

Each variable declared in the current connection settings are listed here and can be created/changed/deleted from this view.
image
image

Clicking on variable lets you change its value.

Profiles

image

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 Profiles node using one of these inline actions:
image

  • Create an empty profile
    • Asks for the name of the new profile then opens the profile editor.
  • Create a new profile from the current settings
    • Asks for the name of the new profile then shows a notification to switch to it.
    image

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:
image
image

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

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

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:
image

Its name is shown in the context description as well:
image

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

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):
image

How to test this PR

  1. Create, edit, delete, rename, run actions
    a. Try generating local actions and make sure they are managed correctly in the local file
  2. Create, edit, delete, rename variables
  3. Create, edit, delete, rename, profiles
    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)
  4. Try actions described in the PR 😅

Checklist

  • have tested my change
  • updated relevant documentation

@sebjulliand sebjulliand added this to the 3.0.0 milestone Oct 27, 2025
@sebjulliand sebjulliand requested a review from a team October 27, 2025 14:04
@sebjulliand sebjulliand self-assigned this Oct 27, 2025
@sebjulliand sebjulliand added the enhancement New feature or request label Oct 27, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Oct 27, 2025

👋 A new build is available for this PR based on ec7bc69.

Copy link
Member

@worksofliam worksofliam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initial review :)

@worksofliam
Copy link
Member

Personally I am not sure how I feel about the 'unload' being the refresh icon:

image

@github-actions
Copy link
Contributor

👋 A new build is available for this PR based on f995092.

@sebjulliand
Copy link
Member Author

Personally I am not sure how I feel about the 'unload' being the refresh icon:
image

I reused what your past self picked 😅
image

But I agree this may be confusing. How about arrow-circle-left since arrow-circle-right is used to activate the profiles?

@github-actions
Copy link
Contributor

👋 A new build is available for this PR based on 744abdd.

@sebjulliand sebjulliand temporarily deployed to testing_environment October 27, 2025 18:16 — with GitHub Actions Inactive
@sebjulliand
Copy link
Member Author

Thanks @worksofliam ; I modified the code per your requests and fixed the types generation.

@sebjulliand sebjulliand linked an issue Oct 31, 2025 that may be closed by this pull request
@sebjulliand sebjulliand mentioned this pull request Oct 31, 2025
Copy link
Collaborator

@chrjorgensen chrjorgensen left a 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:

  1. 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.
  2. Could we have the active profile attached to the connection name in the status bar, like "System (profile)"?

@sebjulliand sebjulliand deployed to testing_environment November 5, 2025 11:53 — with GitHub Actions Active
@sebjulliand
Copy link
Member Author

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).
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Profiles

4 participants