Skip to content

Commit d9e58c3

Browse files
authored
Refactor auto save mechanism (#13683)
1 parent 44b4f27 commit d9e58c3

24 files changed

+510
-306
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
99
<a name="breaking_changes_not_yet_released">[Breaking Changes:](#breaking_changes_not_yet_released)</a> -->
1010

11+
## 1.50.0
12+
13+
<a name="breaking_changes_1.50.0">[Breaking Changes:](#breaking_changes_1.50.0)</a>
14+
15+
- [core] Classes implementing the `Saveable` interface no longer need to implement the `autoSave` field. However, a new `onContentChanged` event has been added instead.
16+
1117
## v1.49.0 - 04/29/2024
1218

1319
- [application-manager] added logic to generate Extension Info in server application to avoid empty About Dialog [#13590](https://github.com/eclipse-theia/theia/pull/13590) - contributed on behalf of STMicroelectronics

examples/api-tests/src/saveable.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,13 @@ describe('Saveable', function () {
8181

8282
afterEach(async () => {
8383
toTearDown.dispose();
84-
await preferences.set('files.autoSave', autoSave, undefined, rootUri.toString());
8584
// @ts-ignore
8685
editor = undefined;
8786
// @ts-ignore
8887
widget = undefined;
8988
await editorManager.closeAll({ save: false });
9089
await fileService.delete(fileUri.parent, { fromUserGesture: false, useTrash: false, recursive: true });
90+
await preferences.set('files.autoSave', autoSave, undefined, rootUri.toString());
9191
});
9292

9393
it('normal save', async function () {

examples/api-tests/src/typescript.spec.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe('TypeScript', function () {
6464
const rootUri = workspaceService.tryGetRoots()[0].resource;
6565
const demoFileUri = rootUri.resolveToAbsolute('../api-tests/test-ts-workspace/demo-file.ts');
6666
const definitionFileUri = rootUri.resolveToAbsolute('../api-tests/test-ts-workspace/demo-definitions-file.ts');
67-
let originalAutoSaveValue = preferences.inspect('files.autoSave').globalValue;
67+
let originalAutoSaveValue = preferences.get('files.autoSave');
6868

6969
before(async function () {
7070
await pluginService.didStart;
@@ -73,8 +73,9 @@ describe('TypeScript', function () {
7373
throw new Error(pluginId + ' should be started');
7474
}
7575
await pluginService.activatePlugin(pluginId);
76-
}).concat(preferences.set('files.autoSave', 'off', PreferenceScope.User)));
77-
await preferences.set('files.refactoring.autoSave', 'off', PreferenceScope.User);
76+
}));
77+
await preferences.set('files.autoSave', 'off');
78+
await preferences.set('files.refactoring.autoSave', 'off');
7879
});
7980

8081
beforeEach(async function () {
@@ -90,7 +91,7 @@ describe('TypeScript', function () {
9091
});
9192

9293
after(async () => {
93-
await preferences.set('files.autoSave', originalAutoSaveValue, PreferenceScope.User);
94+
await preferences.set('files.autoSave', originalAutoSaveValue);
9495
})
9596

9697
/**

packages/core/src/browser/common-frontend-contribution.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ import { WindowService } from './window/window-service';
6262
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
6363
import { DecorationStyle } from './decoration-style';
6464
import { isPinned, Title, togglePinned, Widget } from './widgets';
65-
import { SaveResourceService } from './save-resource-service';
65+
import { SaveableService } from './saveable-service';
6666
import { UserWorkingDirectoryProvider } from './user-working-directory-provider';
6767
import { UNTITLED_SCHEME, UntitledResourceResolver } from '../common';
6868
import { LanguageQuickPickService } from './i18n/language-quick-pick-service';
@@ -385,7 +385,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
385385
@inject(OpenerService) protected readonly openerService: OpenerService,
386386
@inject(AboutDialog) protected readonly aboutDialog: AboutDialog,
387387
@inject(AsyncLocalizationProvider) protected readonly localizationProvider: AsyncLocalizationProvider,
388-
@inject(SaveResourceService) protected readonly saveResourceService: SaveResourceService,
388+
@inject(SaveableService) protected readonly saveResourceService: SaveableService,
389389
) { }
390390

391391
@inject(ContextKeyService)

packages/core/src/browser/frontend-application-module.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ import { DockPanel, RendererHost } from './widgets';
126126
import { TooltipService, TooltipServiceImpl } from './tooltip-service';
127127
import { BackendRequestService, RequestService, REQUEST_SERVICE_PATH } from '@theia/request';
128128
import { bindFrontendStopwatch, bindBackendStopwatch } from './performance';
129-
import { SaveResourceService } from './save-resource-service';
129+
import { SaveableService } from './saveable-service';
130130
import { SecondaryWindowHandler } from './secondary-window-handler';
131131
import { UserWorkingDirectoryProvider } from './user-working-directory-provider';
132132
import { WindowTitleService } from './window/window-title-service';
@@ -449,7 +449,9 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
449449
bindFrontendStopwatch(bind);
450450
bindBackendStopwatch(bind);
451451

452-
bind(SaveResourceService).toSelf().inSingletonScope();
452+
bind(SaveableService).toSelf().inSingletonScope();
453+
bind(FrontendApplicationContribution).toService(SaveableService);
454+
453455
bind(UserWorkingDirectoryProvider).toSelf().inSingletonScope();
454456
bind(FrontendApplicationContribution).toService(UserWorkingDirectoryProvider);
455457

packages/core/src/browser/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,4 @@ export * from './tooltip-service';
4646
export * from './decoration-style';
4747
export * from './styling-service';
4848
export * from './hover-service';
49+
export * from './saveable-service';

packages/core/src/browser/save-resource-service.ts

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)