-
Notifications
You must be signed in to change notification settings - Fork 50
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
Client-side editing overhaul #1401
base: master
Are you sure you want to change the base?
Client-side editing overhaul #1401
Conversation
@gjsjohnmurray @isc-rsingh I've opened this as a draft since this is a giant PR that needs thorough review. I have a few design questions for you that I'd like to resolve before formally starting the review process and seeking feedback from other users:
I've decided to keep this setting for backwards compatibility.
I've decided to keep this behavior for backwards compatibility.
This is covered by |
@daimor I'd appreciate your feedback on this as a regular client-side editing user. |
Is this worth publicizing on DC for feedback before merging? |
FYI after I get a little more user feedback I will be marking this as ready for review. I made the follow architecture changes in my last commit:
|
isfs
virtual workspaces for client-side editing #1278.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.Uri
s as the value, and one in the reverse direction.FileSystemWatcher
to update the index when files are created, deleted or changed on disk and anonDidChangeTextDocument
handler to update the index when a file is changed within VS Code.Uri
for it in a workspace folder was deleted.DocumentContentProvider.getUri()
will use the index to determine theUri
for a class or routine in a non-isfs folder. The export settings are now only used for non-classes and routines in folders with thefile
scheme.WorkspaceSymbolProvider
will only return results from classes that are in the client-side folder by using the index to determine all known classes.objectscript.showExplorer
setting.objectscript.export
settings, except for DFI’s which still check the export settings to preserve the path splitting behavior added by Improve client-side DFI workflow #808. 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).Add Server Namespace to Workspace…
command if the current workspace already has a client-side folder in it. This is to prevent the blending of client-side and server-side workflows in a way that can lead to lost changes or overwritten edits.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.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.objectscript.export.noStorage
setting. Storage is an integral part of the class definition, and we shouldn’t allow removing it.objectscript.export.dontExportIfNoChanges
setting. I don’t think that turning it on adds any benefit to the user.