Path: blob/main/src/vs/editor/test/browser/viewModel/testViewModel.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { IEditorOptions } from '../../../common/config/editorOptions.js';6import { TextModel } from '../../../common/model/textModel.js';7import { ViewModel } from '../../../common/viewModel/viewModelImpl.js';8import { TestConfiguration } from '../config/testConfiguration.js';9import { MonospaceLineBreaksComputerFactory } from '../../../common/viewModel/monospaceLineBreaksComputer.js';10import { createTextModel } from '../../common/testTextModel.js';11import { TestLanguageConfigurationService } from '../../common/modes/testLanguageConfigurationService.js';12import { TestThemeService } from '../../../../platform/theme/test/common/testThemeService.js';1314export function testViewModel(text: string[], options: IEditorOptions, callback: (viewModel: ViewModel, model: TextModel) => void): void {15const EDITOR_ID = 1;1617const configuration = new TestConfiguration(options);18const model = createTextModel(text.join('\n'));19const monospaceLineBreaksComputerFactory = MonospaceLineBreaksComputerFactory.create(configuration.options);20const testLanguageConfigurationService = new TestLanguageConfigurationService();21const viewModel = new ViewModel(EDITOR_ID, configuration, model, monospaceLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, null!, testLanguageConfigurationService, new TestThemeService(), {22setVisibleLines(visibleLines, stabilized) {23},24}, {25batchChanges: (cb) => cb(),26});2728callback(viewModel, model);2930viewModel.dispose();31model.dispose();32configuration.dispose();33testLanguageConfigurationService.dispose();34}353637