Skip to content

Commit f3215d5

Browse files
author
Aiday Marlen Kyzy
authored
Merge pull request microsoft#158369 from microsoft/aiday/refactoringStickyScroll
Refactoring sticky scroll
2 parents 65abd2b + 3061529 commit f3215d5

File tree

4 files changed

+52
-37
lines changed

4 files changed

+52
-37
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
7+
import { localize } from 'vs/nls';
8+
import { Action2, MenuId } from 'vs/platform/actions/common/actions';
9+
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
10+
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
11+
12+
export class ToggleStickyScroll extends Action2 {
13+
14+
constructor() {
15+
super({
16+
id: 'editor.action.toggleStickyScroll',
17+
title: {
18+
value: localize('toggleStickyScroll', "Toggle Sticky Scroll"),
19+
mnemonicTitle: localize('miStickyScroll', "&&Sticky Scroll"),
20+
original: 'Toggle Sticky Scroll',
21+
},
22+
// Hardcoding due to import violation
23+
category: { value: localize('view', "View"), original: 'View' },
24+
toggled: ContextKeyExpr.equals('config.editor.experimental.stickyScroll.enabled', true),
25+
menu: [
26+
{ id: MenuId.CommandPalette },
27+
{ id: MenuId.MenubarViewMenu, group: '5_editor', order: 6 },
28+
]
29+
});
30+
}
31+
32+
override async run(accessor: ServicesAccessor): Promise<void> {
33+
const configurationService = accessor.get(IConfigurationService);
34+
const newValue = !configurationService.getValue('editor.experimental.stickyScroll.enabled');
35+
return configurationService.updateValue('editor.experimental.stickyScroll.enabled', newValue);
36+
}
37+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
7+
import { ToggleStickyScroll } from 'vs/editor/contrib/stickyScroll/browser/stickyScrollActions';
8+
import { StickyScrollController } from 'vs/editor/contrib/stickyScroll/browser/stickyScrollController';
9+
import { registerAction2 } from 'vs/platform/actions/common/actions';
10+
11+
registerEditorContribution(StickyScrollController.ID, StickyScrollController);
12+
registerAction2(ToggleStickyScroll);

src/vs/editor/contrib/stickyScroll/browser/stickyScroll.ts renamed to src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.ts

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,15 @@
55

66
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
77
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
8-
import { registerEditorContribution, ServicesAccessor } from 'vs/editor/browser/editorExtensions';
98
import { IEditorContribution } from 'vs/editor/common/editorCommon';
109
import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures';
1110
import { EditorOption, RenderLineNumbersType } from 'vs/editor/common/config/editorOptions';
1211
import { StickyScrollWidget, StickyScrollWidgetState } from './stickyScrollWidget';
1312
import { StickyLineCandidateProvider, StickyRange } from './stickyScrollProvider';
1413
import { IModelTokensChangedEvent } from 'vs/editor/common/textModelEvents';
15-
import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions';
16-
import { localize } from 'vs/nls';
17-
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
18-
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
1914

20-
class StickyScrollController extends Disposable implements IEditorContribution {
15+
16+
export class StickyScrollController extends Disposable implements IEditorContribution {
2117

2218
static readonly ID = 'store.contrib.stickyScrollController';
2319
private readonly editor: ICodeEditor;
@@ -140,33 +136,3 @@ class StickyScrollController extends Disposable implements IEditorContribution {
140136
this.sessionStore.dispose();
141137
}
142138
}
143-
144-
registerEditorContribution(StickyScrollController.ID, StickyScrollController);
145-
146-
registerAction2(class ToggleStickyScroll extends Action2 {
147-
148-
constructor() {
149-
super({
150-
id: 'editor.action.toggleStickyScroll',
151-
title: {
152-
value: localize('toggleStickyScroll', "Toggle Sticky Scroll"),
153-
mnemonicTitle: localize('miStickyScroll', "&&Sticky Scroll"),
154-
original: 'Toggle Sticky Scroll',
155-
},
156-
// Hardcoding due to import violation
157-
category: { value: localize('view', "View"), original: 'View' },
158-
toggled: ContextKeyExpr.equals('config.editor.experimental.stickyScroll.enabled', true),
159-
menu: [
160-
{ id: MenuId.CommandPalette },
161-
{ id: MenuId.MenubarViewMenu, group: '5_editor', order: 6 },
162-
]
163-
});
164-
}
165-
166-
override async run(accessor: ServicesAccessor): Promise<void> {
167-
const configurationService = accessor.get(IConfigurationService);
168-
const newValue = !configurationService.getValue('editor.experimental.stickyScroll.enabled');
169-
return configurationService.updateValue('editor.experimental.stickyScroll.enabled', newValue);
170-
}
171-
});
172-

src/vs/editor/editor.all.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import 'vs/editor/contrib/links/browser/links';
4141
import 'vs/editor/contrib/multicursor/browser/multicursor';
4242
import 'vs/editor/contrib/parameterHints/browser/parameterHints';
4343
import 'vs/editor/contrib/rename/browser/rename';
44-
import 'vs/editor/contrib/stickyScroll/browser/stickyScroll';
44+
import 'vs/editor/contrib/stickyScroll/browser/stickyScrollContribution';
4545
import 'vs/editor/contrib/smartSelect/browser/smartSelect';
4646
import 'vs/editor/contrib/snippet/browser/snippetController2';
4747
import 'vs/editor/contrib/suggest/browser/suggestController';

0 commit comments

Comments
 (0)