The VS Code extension development team is looking for beta testers to provide feedback on a proposed overhaul of the client-side editing workflow. The full list of changes can be found in the GitHub pull request description. Here are the highlights:
- Support the use of client-side editing in any non-isfs workspace folder, not just folders in your local file system. For example, with VS Code Remote Development.
- Create an index of all Classes, MAC and INT routines, and Include files inside non-isfs workspace folders. This will be used to determine the URI of classes and routines (for example, for Go To Definition).
- Automatically sync all file changes, creations and deletions in client-side workspace folders with the connected server. This can be turned off using the new
objectscript.syncLocalChanges
setting. This new setting replaces the oldobjectscript.importOnSave
setting, which is no longer needed. Ifobjectscript.importOnSave
was set tofalse
, the extension will setobjectscript.syncLocalChanges
tofalse
upon activation so no user migration is required. - Automatically show and hide the InterSystems Explorer and Projects Explorer views based on the folders in the workspace. InterSystems Explorer is only shown if there is at least one non-isfs workspace folder. Projects Explorer is only shown if there is at least one isfs folder. This replaces the
objectscript.showExplorer
setting. - Change the default value of the
objectscript.explorer.alwaysShowServerCopy
setting to true. The InterSystems Explorer should always show the server copy since the local copy can be opened from the files explorer. - Change the default value of the
objectscript.autoAdjustName
setting to false. Now that we have an index of the workspace, we no longer require that a document's name match the file path for the extensions to find it. - Cache the list of Studio Abstract Document extensions that are supported for each server connection so we can properly import them from client-side folders. Importing abstract documents is now independent of the
objectscript.export
settings, except for DFI’s which still check the export settings to preserve the current path-splitting behavior. Any file within a workspace folder that has a supported abstract document extension will be imported with the last part of the path used as the server name (except for DFI’s that match the export settings). For example, if the file path on disk is/src/other/example.ext
, the server name will beexample.ext
.
In addition to general feedback on the changes, there are four design questions that have yet to be answered:
Do any users want the InterSystems Explorer (NOT the default VS Code file explorer) to show the local copies of the documents? If not, theEDIT: This setting will be retained for backwards compatibility.objectscript.explorer.alwaysShowServerCopy
setting can be removed.Do any users edit DFI files locally and have repositories that depend on the folder splitting behavior? If not, that special handling will be removed and DFIs will be treated like any other Abstract Document type.EDIT: This behavior will be retained for backwards compatibility, but newly exported DFI files will not be split into subfolders.Should the automatic deletion of files on the server when the local copy is deleted be guarded by a setting so users can disable it?EDIT: This is covered by the newobjectscript.syncLocalChanges
setting.This extension has a feature that will attempt to adjust the name of a class or routine when it's copied or moved to a new location within the workspace folder. This was implemented to help developers keep the file path and document name in sync. It can be turned off using theEDIT: This setting's default has been changed toobjectscript.autoAdjustName
setting. Do users value this feature? Should theobjectscript.autoAdjustName
setting be set tofalse
by default? Should this feature be removed entirely since the document index removes the need for the path to match the document name?false
.
Here's how you can share your feedback:
- Download the zip file at the end of this post and extract the vsix file contained within.
- Install the vsix file in VS Code using these directions, or by dragging the file from your file explorer into the Extensions view in VS Code.
- Follow your normal development workflow and try out some new features.
- Share your experience here, or on the GitHub pull request.
Thanks in advance for trying this out and we hope you like the changes!