Skip to content

Commit 9ab08c2

Browse files
committed
Adopt conditional types for editor options reading
1 parent 363b976 commit 9ab08c2

57 files changed

Lines changed: 442 additions & 404 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/vs/editor/browser/controller/mouseHandler.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ import { HorizontalRange } from 'vs/editor/common/view/renderingContext';
2121
import { ViewContext } from 'vs/editor/common/view/viewContext';
2222
import * as viewEvents from 'vs/editor/common/view/viewEvents';
2323
import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler';
24-
import { EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
24+
import { EditorOptionId } from 'vs/editor/common/config/editorOptions';
25+
2526

2627
/**
2728
* Merges mouse events when mouse move events are throttled
@@ -217,7 +218,7 @@ export class MouseHandler extends ViewEventHandler {
217218
const targetIsContent = (t.type === editorBrowser.MouseTargetType.CONTENT_TEXT || t.type === editorBrowser.MouseTargetType.CONTENT_EMPTY);
218219
const targetIsGutter = (t.type === editorBrowser.MouseTargetType.GUTTER_GLYPH_MARGIN || t.type === editorBrowser.MouseTargetType.GUTTER_LINE_NUMBERS || t.type === editorBrowser.MouseTargetType.GUTTER_LINE_DECORATIONS);
219220
const targetIsLineNumbers = (t.type === editorBrowser.MouseTargetType.GUTTER_LINE_NUMBERS);
220-
const selectOnLineNumbers = this._context.configuration.options.get<typeof EditorOption.selectOnLineNumbers>(EditorOptionId.selectOnLineNumbers);
221+
const selectOnLineNumbers = this._context.configuration.options.get(EditorOptionId.selectOnLineNumbers);
221222
const targetIsViewZone = (t.type === editorBrowser.MouseTargetType.CONTENT_VIEW_ZONE || t.type === editorBrowser.MouseTargetType.GUTTER_VIEW_ZONE);
222223
const targetIsWidget = (t.type === editorBrowser.MouseTargetType.CONTENT_WIDGET);
223224

@@ -352,7 +353,10 @@ class MouseDownOperation extends Disposable {
352353
// Overwrite the detail of the MouseEvent, as it will be sent out in an event and contributions might rely on it.
353354
e.detail = this._mouseState.count;
354355

355-
if (!this._context.configuration.editor.readOnly
356+
const options = this._context.configuration.options;
357+
const readOnly = options.get(EditorOptionId.readOnly);
358+
359+
if (!readOnly
356360
&& this._context.configuration.editor.dragAndDrop
357361
&& !this._mouseState.altKey // we don't support multiple mouse
358362
&& e.detail < 2 // only single click on a selection can work

src/vs/editor/browser/controller/mouseTarget.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { ClientCoordinates, EditorMouseEvent, EditorPagePosition, PageCoordinate
1010
import { PartFingerprint, PartFingerprints } from 'vs/editor/browser/view/viewPart';
1111
import { ViewLine } from 'vs/editor/browser/viewParts/lines/viewLine';
1212
import { IViewCursorRenderData } from 'vs/editor/browser/viewParts/viewCursors/viewCursor';
13-
import { EditorLayoutInfo, EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
13+
import { EditorLayoutInfo, EditorOptionId } from 'vs/editor/common/config/editorOptions';
1414
import { Position } from 'vs/editor/common/core/position';
1515
import { Range as EditorRange } from 'vs/editor/common/core/range';
1616
import { HorizontalRange } from 'vs/editor/common/view/renderingContext';
@@ -240,7 +240,7 @@ export class HitTestContext {
240240
constructor(context: ViewContext, viewHelper: IPointerHandlerHelper, lastViewCursorsRenderData: IViewCursorRenderData[]) {
241241
this.model = context.model;
242242
const options = context.configuration.options;
243-
this.layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
243+
this.layoutInfo = options.get(EditorOptionId.layoutInfo);
244244
this.viewDomNode = viewHelper.viewDomNode;
245245
this.lineHeight = context.configuration.editor.lineHeight;
246246
this.typicalHalfwidthCharacterWidth = context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth;
@@ -715,7 +715,7 @@ export class MouseTargetFactory {
715715

716716
public getMouseColumn(editorPos: EditorPagePosition, pos: PageCoordinates): number {
717717
const options = this._context.configuration.options;
718-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
718+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
719719
const mouseContentHorizontalOffset = this._context.viewLayout.getCurrentScrollLeft() + pos.x - editorPos.x - layoutInfo.contentLeft;
720720
return MouseTargetFactory._getMouseColumn(mouseContentHorizontalOffset, this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth);
721721
}

src/vs/editor/browser/controller/textAreaHandler.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { ViewController } from 'vs/editor/browser/view/viewController';
1616
import { PartFingerprint, PartFingerprints, ViewPart } from 'vs/editor/browser/view/viewPart';
1717
import { LineNumbersOverlay } from 'vs/editor/browser/viewParts/lineNumbers/lineNumbers';
1818
import { Margin } from 'vs/editor/browser/viewParts/margin/margin';
19-
import { RenderLineNumbersType, EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
19+
import { RenderLineNumbersType, EditorOptionId } from 'vs/editor/common/config/editorOptions';
2020
import { BareFontInfo } from 'vs/editor/common/config/fontInfo';
2121
import { WordCharacterClass, getMapForWordSeparators } from 'vs/editor/common/controller/wordCharacterClassifier';
2222
import { Position } from 'vs/editor/common/core/position';
@@ -120,9 +120,9 @@ export class TextAreaHandler extends ViewPart {
120120

121121
const conf = this._context.configuration.editor;
122122
const options = this._context.configuration.options;
123-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
123+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
124124

125-
this._accessibilitySupport = conf.accessibilitySupport;
125+
this._accessibilitySupport = options.get(EditorOptionId.accessibilitySupport);
126126
this._contentLeft = layoutInfo.contentLeft;
127127
this._contentWidth = layoutInfo.contentWidth;
128128
this._contentHeight = layoutInfo.contentHeight;
@@ -145,7 +145,7 @@ export class TextAreaHandler extends ViewPart {
145145
this.textArea.setAttribute('autocapitalize', 'off');
146146
this.textArea.setAttribute('autocomplete', 'off');
147147
this.textArea.setAttribute('spellcheck', 'false');
148-
this.textArea.setAttribute('aria-label', options.get<typeof EditorOption.ariaLabel>(EditorOptionId.ariaLabel));
148+
this.textArea.setAttribute('aria-label', options.get(EditorOptionId.ariaLabel));
149149
this.textArea.setAttribute('role', 'textbox');
150150
this.textArea.setAttribute('aria-multiline', 'true');
151151
this.textArea.setAttribute('aria-haspopup', 'false');
@@ -379,10 +379,10 @@ export class TextAreaHandler extends ViewPart {
379379
this._fontInfo = conf.fontInfo;
380380
}
381381
if (e.viewInfo) {
382-
this.textArea.setAttribute('aria-label', options.get<typeof EditorOption.ariaLabel>(EditorOptionId.ariaLabel));
382+
this.textArea.setAttribute('aria-label', options.get(EditorOptionId.ariaLabel));
383383
}
384384
if (e.hasChanged(EditorOptionId.layoutInfo)) {
385-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
385+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
386386
this._contentLeft = layoutInfo.contentLeft;
387387
this._contentWidth = layoutInfo.contentWidth;
388388
this._contentHeight = layoutInfo.contentHeight;
@@ -391,7 +391,7 @@ export class TextAreaHandler extends ViewPart {
391391
this._lineHeight = conf.lineHeight;
392392
}
393393
if (e.hasChanged(EditorOptionId.accessibilitySupport)) {
394-
this._accessibilitySupport = conf.accessibilitySupport;
394+
this._accessibilitySupport = options.get(EditorOptionId.accessibilitySupport);
395395
this._textAreaInput.writeScreenReaderContent('strategy changed');
396396
}
397397
if (e.emptySelectionClipboard) {
@@ -553,7 +553,7 @@ export class TextAreaHandler extends ViewPart {
553553
if (this._context.configuration.editor.viewInfo.glyphMargin) {
554554
tac.setClassName('monaco-editor-background textAreaCover ' + Margin.OUTER_CLASS_NAME);
555555
} else {
556-
const renderLineNumbers = options.get<typeof EditorOption.renderLineNumbers>(EditorOptionId.renderLineNumbers);
556+
const renderLineNumbers = options.get(EditorOptionId.renderLineNumbers);
557557
if (renderLineNumbers.renderType !== RenderLineNumbersType.Off) {
558558
tac.setClassName('monaco-editor-background textAreaCover ' + LineNumbersOverlay.CLASS_NAME);
559559
} else {

src/vs/editor/browser/editorBrowser.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
77
import { IMouseEvent, IMouseWheelEvent } from 'vs/base/browser/mouseEvent';
88
import { IDisposable } from 'vs/base/common/lifecycle';
9-
import * as editorOptions from 'vs/editor/common/config/editorOptions';
9+
import { OverviewRulerPosition, IConfigurationChangedEvent, EditorLayoutInfo, InternalEditorOptions, IComputedEditorOptions, EditorOptionId, FindComputedEditorOptionValueById, IEditorOptions } from 'vs/editor/common/config/editorOptions';
1010
import { ICursors } from 'vs/editor/common/controller/cursorCommon';
1111
import { ICursorPositionChangedEvent, ICursorSelectionChangedEvent } from 'vs/editor/common/controller/cursorEvents';
1212
import { IPosition, Position } from 'vs/editor/common/core/position';
@@ -315,7 +315,7 @@ export interface IOverviewRuler {
315315
getDomNode(): HTMLElement;
316316
dispose(): void;
317317
setZones(zones: OverviewRulerZone[]): void;
318-
setLayout(position: editorOptions.OverviewRulerPosition): void;
318+
setLayout(position: OverviewRulerPosition): void;
319319
}
320320

321321
/**
@@ -351,7 +351,7 @@ export interface ICodeEditor extends editorCommon.IEditor {
351351
* An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`)
352352
* @event
353353
*/
354-
onDidChangeConfiguration(listener: (e: editorOptions.IConfigurationChangedEvent) => void): IDisposable;
354+
onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable;
355355
/**
356356
* An event emitted when the cursor position has changed.
357357
* @event
@@ -481,7 +481,7 @@ export interface ICodeEditor extends editorCommon.IEditor {
481481
* An event emitted when the layout of the editor has changed.
482482
* @event
483483
*/
484-
onDidLayoutChange(listener: (e: editorOptions.EditorLayoutInfo) => void): IDisposable;
484+
onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable;
485485
/**
486486
* An event emitted when the scroll in the editor has changed.
487487
* @event
@@ -534,17 +534,16 @@ export interface ICodeEditor extends editorCommon.IEditor {
534534
/**
535535
* Returns the current editor's configuration
536536
*/
537-
getConfiguration(): editorOptions.InternalEditorOptions;
537+
getConfiguration(): InternalEditorOptions;
538538

539-
getOptions(): editorOptions.IComputedEditorOptions;
540-
541-
getOption<T extends editorOptions.IEditorOption<any, any, any>>(id: editorOptions.EditorOptionId): editorOptions.ComputedEditorOptionValue<T>;
539+
getOptions(): IComputedEditorOptions;
542540

541+
getOption<T extends EditorOptionId>(id: T): FindComputedEditorOptionValueById<T>;
543542
/**
544543
* Returns the 'raw' editor's configuration (without any validation or defaults).
545544
* @internal
546545
*/
547-
getRawConfiguration(): editorOptions.IEditorOptions;
546+
getRawConfiguration(): IEditorOptions;
548547

549548
/**
550549
* Get value of the current model attached to this editor.
@@ -659,7 +658,7 @@ export interface ICodeEditor extends editorCommon.IEditor {
659658
/**
660659
* Get the layout info for the editor.
661660
*/
662-
getLayoutInfo(): editorOptions.EditorLayoutInfo;
661+
getLayoutInfo(): EditorLayoutInfo;
663662

664663
/**
665664
* Returns the ranges that are currently visible.

src/vs/editor/browser/view/viewImpl.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'
4848
import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler';
4949
import { IViewModel } from 'vs/editor/common/viewModel/viewModel';
5050
import { IThemeService, getThemeTypeSelector } from 'vs/platform/theme/common/themeService';
51-
import { EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
51+
import { EditorOptionId } from 'vs/editor/common/config/editorOptions';
52+
5253

5354
export interface IContentWidgetData {
5455
widget: editorBrowser.IContentWidget;
@@ -283,7 +284,7 @@ export class View extends ViewEventHandler {
283284

284285
private _setLayout(): void {
285286
const options = this._context.configuration.options;
286-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
287+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
287288
this.domNode.setWidth(layoutInfo.width);
288289
this.domNode.setHeight(layoutInfo.height);
289290

src/vs/editor/browser/view/viewOverlays.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/v
1414
import { ViewContext } from 'vs/editor/common/view/viewContext';
1515
import * as viewEvents from 'vs/editor/common/view/viewEvents';
1616
import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData';
17-
import { EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
17+
import { EditorOptionId } from 'vs/editor/common/config/editorOptions';
18+
1819

1920
export class ViewOverlays extends ViewPart implements IVisibleLinesHost<ViewOverlayLine> {
2021

@@ -217,7 +218,7 @@ export class ContentViewOverlays extends ViewOverlays {
217218
constructor(context: ViewContext) {
218219
super(context);
219220
const options = this._context.configuration.options;
220-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
221+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
221222
this._contentWidth = layoutInfo.contentWidth;
222223

223224
this.domNode.setHeight(0);
@@ -228,7 +229,7 @@ export class ContentViewOverlays extends ViewOverlays {
228229
public onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {
229230
if (e.hasChanged(EditorOptionId.layoutInfo)) {
230231
const options = this._context.configuration.options;
231-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
232+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
232233
this._contentWidth = layoutInfo.contentWidth;
233234
}
234235
return super.onConfigurationChanged(e);
@@ -254,7 +255,7 @@ export class MarginViewOverlays extends ViewOverlays {
254255
super(context);
255256

256257
const options = this._context.configuration.options;
257-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
258+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
258259
this._contentLeft = layoutInfo.contentLeft;
259260

260261
this.domNode.setClassName('margin-view-overlays');
@@ -271,7 +272,7 @@ export class MarginViewOverlays extends ViewOverlays {
271272
}
272273
if (e.hasChanged(EditorOptionId.layoutInfo)) {
273274
const options = this._context.configuration.options;
274-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
275+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
275276
this._contentLeft = layoutInfo.contentLeft;
276277
shouldRender = true;
277278
}

src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/v
1414
import { ViewContext } from 'vs/editor/common/view/viewContext';
1515
import * as viewEvents from 'vs/editor/common/view/viewEvents';
1616
import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData';
17-
import { EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
17+
import { EditorOptionId } from 'vs/editor/common/config/editorOptions';
18+
1819

1920
class Coordinate {
2021
_coordinateBrand: void;
@@ -209,7 +210,7 @@ class Widget {
209210
this.suppressMouseDown = this._actual.suppressMouseDown || false;
210211

211212
const options = this._context.configuration.options;
212-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
213+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
213214

214215
this._fixedOverflowWidgets = this._context.configuration.editor.viewInfo.fixedOverflowWidgets;
215216
this._contentWidth = layoutInfo.contentWidth;
@@ -239,7 +240,7 @@ class Widget {
239240
}
240241
if (e.hasChanged(EditorOptionId.layoutInfo)) {
241242
const options = this._context.configuration.options;
242-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
243+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
243244
this._contentLeft = layoutInfo.contentLeft;
244245
this._contentWidth = layoutInfo.contentWidth;
245246
this._maxWidth = this._getMaxWidth();

src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { RenderingContext } from 'vs/editor/common/view/renderingContext';
1010
import { ViewContext } from 'vs/editor/common/view/viewContext';
1111
import * as viewEvents from 'vs/editor/common/view/viewEvents';
1212
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
13-
import { EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
13+
import { EditorOptionId } from 'vs/editor/common/config/editorOptions';
14+
1415

1516
export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
1617
private readonly _context: ViewContext;
@@ -25,7 +26,7 @@ export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
2526
super();
2627
this._context = context;
2728
const options = this._context.configuration.options;
28-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
29+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
2930

3031
this._lineHeight = this._context.configuration.editor.lineHeight;
3132
this._renderLineHighlight = this._context.configuration.editor.viewInfo.renderLineHighlight;
@@ -55,7 +56,7 @@ export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
5556
}
5657
if (e.hasChanged(EditorOptionId.layoutInfo)) {
5758
const options = this._context.configuration.options;
58-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
59+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
5960
this._contentWidth = layoutInfo.contentWidth;
6061
}
6162
return true;

src/vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { RenderingContext } from 'vs/editor/common/view/renderingContext';
1010
import { ViewContext } from 'vs/editor/common/view/viewContext';
1111
import * as viewEvents from 'vs/editor/common/view/viewEvents';
1212
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
13-
import { EditorOptionId, EditorOption } from 'vs/editor/common/config/editorOptions';
13+
import { EditorOptionId } from 'vs/editor/common/config/editorOptions';
14+
1415

1516
export class CurrentLineMarginHighlightOverlay extends DynamicViewOverlay {
1617
private readonly _context: ViewContext;
@@ -24,7 +25,7 @@ export class CurrentLineMarginHighlightOverlay extends DynamicViewOverlay {
2425
super();
2526
this._context = context;
2627
const options = this._context.configuration.options;
27-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
28+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
2829
this._lineHeight = this._context.configuration.editor.lineHeight;
2930
this._renderLineHighlight = this._context.configuration.editor.viewInfo.renderLineHighlight;
3031

@@ -51,7 +52,7 @@ export class CurrentLineMarginHighlightOverlay extends DynamicViewOverlay {
5152
}
5253
if (e.hasChanged(EditorOptionId.layoutInfo)) {
5354
const options = this._context.configuration.options;
54-
const layoutInfo = options.get<typeof EditorOption.layoutInfo>(EditorOptionId.layoutInfo);
55+
const layoutInfo = options.get(EditorOptionId.layoutInfo);
5556
this._contentLeft = layoutInfo.contentLeft;
5657
}
5758
return true;

0 commit comments

Comments
 (0)