Skip to content

Commit e65cf31

Browse files
authored
Fix view model event and expose a way to get hidden areas (microsoft#156571)
* Fix emitting of wrong event in view model * Add `IViewModel.getHiddenAreas`
1 parent 95fd5bf commit e65cf31

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/vs/editor/common/viewModel.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ export interface IViewModel extends ICursorSimpleModel {
4848
getCompletelyVisibleViewRange(): Range;
4949
getCompletelyVisibleViewRangeAtScrollTop(scrollTop: number): Range;
5050

51+
getHiddenAreas(): Range[];
52+
5153
getLineCount(): number;
5254
getLineContent(lineNumber: number): string;
5355
getLineLength(lineNumber: number): number;

src/vs/editor/common/viewModel/viewModelImpl.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import { ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText } from 'v
3636
import { ViewEventHandler } from 'vs/editor/common/viewEventHandler';
3737
import { ICoordinatesConverter, InlineDecoration, IViewModel, IWhitespaceChangeAccessor, MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel';
3838
import { ViewModelDecorations } from 'vs/editor/common/viewModel/viewModelDecorations';
39-
import { FocusChangedEvent, ModelContentChangedEvent, ModelDecorationsChangedEvent, ModelLanguageChangedEvent, ModelLanguageConfigurationChangedEvent, ModelOptionsChangedEvent, ModelTokensChangedEvent, OutgoingViewModelEvent, ReadOnlyEditAttemptEvent, ScrollChangedEvent, ViewModelEventDispatcher, ViewModelEventsCollector, ViewZonesChangedEvent } from 'vs/editor/common/viewModelEventDispatcher';
39+
import { FocusChangedEvent, HiddenAreasChangedEvent, ModelContentChangedEvent, ModelDecorationsChangedEvent, ModelLanguageChangedEvent, ModelLanguageConfigurationChangedEvent, ModelOptionsChangedEvent, ModelTokensChangedEvent, OutgoingViewModelEvent, ReadOnlyEditAttemptEvent, ScrollChangedEvent, ViewModelEventDispatcher, ViewModelEventsCollector, ViewZonesChangedEvent } from 'vs/editor/common/viewModelEventDispatcher';
4040
import { IViewModelLines, ViewModelLinesFromModelAsIs, ViewModelLinesFromProjectedModel } from 'vs/editor/common/viewModel/viewModelLines';
4141
import { IThemeService } from 'vs/platform/theme/common/themeService';
4242

@@ -485,7 +485,7 @@ export class ViewModel extends Disposable implements IViewModel {
485485
this._updateConfigurationViewLineCount.schedule();
486486

487487
if (lineMappingChanged) {
488-
this._eventDispatcher.emitOutgoingEvent(new ViewZonesChangedEvent());
488+
this._eventDispatcher.emitOutgoingEvent(new HiddenAreasChangedEvent());
489489
}
490490
}
491491

@@ -508,6 +508,10 @@ export class ViewModel extends Disposable implements IViewModel {
508508
return this._toModelVisibleRanges(visibleViewRange);
509509
}
510510

511+
public getHiddenAreas(): Range[] {
512+
return this._lines.getHiddenAreas();
513+
}
514+
511515
private _toModelVisibleRanges(visibleViewRange: Range): Range[] {
512516
const visibleRange = this.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);
513517
const hiddenAreas = this._lines.getHiddenAreas();

0 commit comments

Comments
 (0)