jiebi/CodeConvo huggingface dataset:
} } <del> function getRelativePath(file: vscode.Uri): string | undefined { const dir = getDocumentDir(file); if (dir && dir.scheme === file.scheme && dir.authority === file.authority) { if (file.scheme === Schemes.file) { </del> <ins> function getRelativePath(fromFile: vscode.Uri | undefined, toFile: vscode.Uri): string | undefined { if (fromFile && fromFile.scheme === toFile.scheme && fromFile.authority === toFile.authority) { if (toFile.scheme === Schemes.file) { </ins> // On windows, we must use the native `path.relative` to generate the relative path // so that drive-letters are resolved cast insensitively. However we then want to // convert back to a posix path to insert in to the document <del> const relativePath = path.relative(dir.fsPath, file.fsPath); </del> <ins> const relativePath = path.relative(fromFile.fsPath, toFile.fsPath); </ins> return path.posix.normalize(relativePath.split(path.sep).join(path.posix.sep)); } <del> return path.posix.relative(dir.path, file.path); </del> <ins> return path.posix.relative(fromFile.path, toFile.path); </ins> } return undefined;
"@vscode/windows-mutex": "^0.5.0", "@vscode/windows-process-tree": "^0.6.0", "@vscode/windows-registry": "^1.1.0", <del> "@xterm/addon-clipboard": "0.2.0-beta.34", "@xterm/addon-image": "0.9.0-beta.51", "@xterm/addon-search": "0.16.0-beta.51", "@xterm/addon-serialize": "0.14.0-beta.51", "@xterm/addon-unicode11": "0.9.0-beta.51", "@xterm/addon-webgl": "0.19.0-beta.51", "@xterm/headless": "5.6.0-beta.51", "@xterm/xterm": "5.6.0-beta.51", </del> <ins> "@xterm/addon-clipboard": "0.2.0-beta.35", "@xterm/addon-image": "0.9.0-beta.52", "@xterm/addon-search": "0.16.0-beta.52", "@xterm/addon-serialize": "0.14.0-beta.52", "@xterm/addon-unicode11": "0.9.0-beta.52", "@xterm/addon-webgl": "0.19.0-beta.52", "@xterm/headless": "5.6.0-beta.52", "@xterm/xterm": "5.6.0-beta.52", </ins> "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.2", "jschardet": "3.1.3",
"@vscode/vscode-languagedetection": "1.0.21", "@vscode/windows-process-tree": "^0.6.0", "@vscode/windows-registry": "^1.1.0", <del> "@xterm/addon-clipboard": "0.2.0-beta.34", "@xterm/addon-image": "0.9.0-beta.51", "@xterm/addon-search": "0.16.0-beta.51", "@xterm/addon-serialize": "0.14.0-beta.51", "@xterm/addon-unicode11": "0.9.0-beta.51", "@xterm/addon-webgl": "0.19.0-beta.51", "@xterm/headless": "5.6.0-beta.51", "@xterm/xterm": "5.6.0-beta.51", </del> <ins> "@xterm/addon-clipboard": "0.2.0-beta.35", "@xterm/addon-image": "0.9.0-beta.52", "@xterm/addon-search": "0.16.0-beta.52", "@xterm/addon-serialize": "0.14.0-beta.52", "@xterm/addon-unicode11": "0.9.0-beta.52", "@xterm/addon-webgl": "0.19.0-beta.52", "@xterm/headless": "5.6.0-beta.52", "@xterm/xterm": "5.6.0-beta.52", </ins> "cookie": "^0.4.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.2",
"@vscode/iconv-lite-umd": "0.7.0", "@vscode/tree-sitter-wasm": "^0.0.1", "@vscode/vscode-languagedetection": "1.0.21", <del> "@xterm/addon-clipboard": "0.2.0-beta.34", "@xterm/addon-image": "0.9.0-beta.51", "@xterm/addon-search": "0.16.0-beta.51", "@xterm/addon-serialize": "0.14.0-beta.51", "@xterm/addon-unicode11": "0.9.0-beta.51", "@xterm/addon-webgl": "0.19.0-beta.51", "@xterm/xterm": "5.6.0-beta.51", </del> <ins> "@xterm/addon-clipboard": "0.2.0-beta.35", "@xterm/addon-image": "0.9.0-beta.52", "@xterm/addon-search": "0.16.0-beta.52", "@xterm/addon-serialize": "0.14.0-beta.52", "@xterm/addon-unicode11": "0.9.0-beta.52", "@xterm/addon-webgl": "0.19.0-beta.52", "@xterm/xterm": "5.6.0-beta.52", </ins> "jschardet": "3.1.3", "tas-client-umd": "0.2.0", "vscode-oniguruma": "1.7.0",
return true; } <del> const quickPick = this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true }); </del> <ins> const localDisposableStore = new DisposableStore(); const quickPick = localDisposableStore.add(this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true })); </ins> const quickPickItems = this._getKernelPickerQuickPickItems(notebook, matchResult, this._notebookKernelService, scopedContextKeyService); if (quickPickItems.length === 1 && supportAutoRun(quickPickItems[0]) && !skipAutoRun) { <del> return await this._handleQuickPick(editor, quickPickItems[0], quickPickItems as KernelQuickPickItem[]); </del> <ins> const picked = await this._handleQuickPick(editor, quickPickItems[0], quickPickItems as KernelQuickPickItem[]); localDisposableStore.dispose(); return picked; </ins> } quickPick.items = quickPickItems;
}, this); const pick = await new Promise<{ selected: KernelQuickPickItem | undefined; items: KernelQuickPickItem[] }>((resolve, reject) => { <del> quickPick.onDidAccept(() => { </del> <ins> localDisposableStore.add(quickPick.onDidAccept(() => { </ins> const item = quickPick.selectedItems[0]; if (item) { resolve({ selected: item, items: quickPick.items as KernelQuickPickItem[] });
} quickPick.hide(); <del> }); </del> <ins> })); </ins> <del> quickPick.onDidHide(() => { </del> <ins> localDisposableStore.add(quickPick.onDidHide(() => { </ins> kernelDetectionTaskListener.dispose(); kernelChangeEventListener.dispose(); quickPick.dispose(); resolve({ selected: undefined, items: quickPick.items as KernelQuickPickItem[] }); <del> }); </del> <ins> })); </ins> quickPick.show(); }); <ins> localDisposableStore.dispose(); </ins> if (pick.selected) { return await this._handleQuickPick(editor, pick.selected, pick.items); }
private async displaySelectAnotherQuickPick(editor: IActiveNotebookEditor, kernelListEmpty: boolean): Promise<boolean> { const notebook: NotebookTextModel = editor.textModel; const disposables = new DisposableStore(); <del> const quickPick = this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true }); </del> <ins> const quickPick = disposables.add(this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true })); </ins> const quickPickItem = await new Promise<KernelQuickPickItem | IQuickInputButton | undefined>(resolve => { // select from kernel sources quickPick.title = kernelListEmpty ? localize('select', "Select Kernel") : localize('selectAnotherKernel', "Select Another Kernel");
resolve(button); } })); <del> quickPick.onDidTriggerItemButton(async (e) => { </del> <ins> disposables.add(quickPick.onDidTriggerItemButton(async (e) => { </ins> if (isKernelSourceQuickPickItem(e.item) && e.item.documentation !== undefined) { const uri = URI.isUri(e.item.documentation) ? URI.parse(e.item.documentation) : await this._commandService.executeCommand(e.item.documentation); void this._openerService.open(uri, { openExternal: true }); } <del> }); </del> <ins> })); </ins> disposables.add(quickPick.onDidAccept(async () => { resolve(quickPick.selectedItems[0]); }));
private async _selectOneKernel(notebook: NotebookTextModel, source: string, kernels: INotebookKernel[]) { const quickPickItems: QuickPickInput<KernelPick>[] = kernels.map(kernel => toKernelQuickPick(kernel, undefined)); <del> const quickPick = this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true }); </del> <ins> const localDisposableStore = new DisposableStore(); const quickPick = localDisposableStore.add(this._quickInputService.createQuickPick<KernelQuickPickItem>({ useSeparators: true })); </ins> quickPick.items = quickPickItems; quickPick.canSelectMany = false; quickPick.title = localize('selectKernelFromExtension', "Select Kernel from {0}", source); <del> quickPick.onDidAccept(async () => { </del> <ins> localDisposableStore.add(quickPick.onDidAccept(async () => { </ins> if (quickPick.selectedItems && quickPick.selectedItems.length > 0 && isKernelPick(quickPick.selectedItems[0])) { await this._selecteKernel(notebook, quickPick.selectedItems[0].kernel); } quickPick.hide(); quickPick.dispose(); <del> }); </del> <ins> })); </ins> <del> quickPick.onDidHide(() => { quickPick.dispose(); }); </del> <ins> localDisposableStore.add(quickPick.onDidHide(() => { localDisposableStore.dispose(); })); </ins> quickPick.show(); }
async getExtensions(extensionInfos: ReadonlyArray<IExtensionInfo>, arg1: any, arg2?: any): Promise<IGalleryExtension[]> { const options = CancellationToken.isCancellationToken(arg1) ? {} : arg1 as IExtensionQueryOptions; const token = CancellationToken.isCancellationToken(arg1) ? arg1 : arg2 as CancellationToken; <ins> const result = await this.doGetExtensions(extensionInfos, options, token); const uuids = result.map(r => r.identifier.uuid); const extensionInfosByName: IExtensionInfo[] = []; for (const e of extensionInfos) { if (e.uuid && !uuids.includes(e.uuid)) { extensionInfosByName.push({ ...e, uuid: undefined }); } } if (extensionInfosByName.length) { // report telemetry data for additional query this.telemetryService.publicLog2< { count: number }, { owner: 'sandy081'; comment: 'Report the query to the the Marketplace for fetching extensions by name'; readonly count: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Number of extensions to fetch' }; }>('galleryService:additionalQueryByName', { count: extensionInfosByName.length }); const extensions = await this.doGetExtensions(extensionInfosByName, options, token); result.push(...extensions); } return result; } private async doGetExtensions(extensionInfos: ReadonlyArray<IExtensionInfo>, options: IExtensionQueryOptions, token: CancellationToken): Promise<IGalleryExtension[]> { </ins> const names: string[] = []; const ids: string[] = [], includePreReleases: (IExtensionIdentifier & { includePreRelease: boolean })[] = [], versions: (IExtensionIdentifier & { version: string })[] = []; let isQueryForReleaseVersionFromPreReleaseVersion = true; for (const extensionInfo of extensionInfos) {
if (walkthroughID) { const selectedCategory = typeof walkthroughID === 'string' ? walkthroughID : walkthroughID.category; <del> const selectedStep = typeof walkthroughID === 'string' ? undefined : walkthroughID.category + '#' + walkthroughID.step; </del> <ins> let selectedStep: string | undefined; if (typeof walkthroughID === 'object' && 'category' in walkthroughID && 'step' in walkthroughID) { selectedStep = `${walkthroughID.category}#${walkthroughID.step}`; } else { selectedStep = undefined; } </ins> // We're trying to open the welcome page from the Help menu if (!selectedCategory && !selectedStep) {
// Try first to select the walkthrough on an active welcome page with no selected walkthrough for (const group of editorGroupsService.groups) { if (group.activeEditor instanceof GettingStartedInput) { <ins> const activeEditor = group.activeEditor as GettingStartedInput; activeEditor.showWelcome = false; </ins> (group.activeEditorPane as GettingStartedPage).makeCategoryVisibleWhenAvailable(selectedCategory, selectedStep); return; }
const activeGroup = editorGroupsService.activeGroup; activeGroup.replaceEditors([{ editor: activeEditor, <del> replacement: instantiationService.createInstance(GettingStartedInput, { selectedCategory: selectedCategory, selectedStep: selectedStep }) </del> <ins> replacement: instantiationService.createInstance(GettingStartedInput, { selectedCategory: selectedCategory, selectedStep: selectedStep, showWelcome: false }) </ins> }]); } else { // else open respecting toSide <del> const options: GettingStartedEditorOptions = { selectedCategory: selectedCategory, selectedStep: selectedStep, preserveFocus: toSide ?? false }; </del> <ins> const options: GettingStartedEditorOptions = { selectedCategory: selectedCategory, selectedStep: selectedStep, showWelcome: false, preserveFocus: toSide ?? false }; </ins> editorService.openEditor({ resource: GettingStartedInput.RESOURCE, options
} else { slideManager.classList.add('showDetails'); slideManager.classList.remove('showCategories'); <del> this.container.querySelector<HTMLButtonElement>('.prev-button.button-link')!.style.display = 'block'; </del> <ins> const showGoBackButton = this.editorInput.showWelcome || this.prevWalkthrough; this.container.querySelector<HTMLButtonElement>('.prev-button.button-link')!.style.display = showGoBackButton ? 'block' : 'none'; </ins> this.container.querySelector('.gettingStartedSlideDetails')!.querySelectorAll('button').forEach(button => button.disabled = false); this.container.querySelector('.gettingStartedSlideCategories')!.querySelectorAll('button').forEach(button => button.disabled = true); this.container.querySelector('.gettingStartedSlideCategories')!.querySelectorAll('input').forEach(button => button.disabled = true);
export const gettingStartedInputTypeId = 'workbench.editors.gettingStartedInput'; export interface GettingStartedEditorOptions extends IEditorOptions { <del> selectedCategory?: string; selectedStep?: string; showTelemetryNotice?: boolean; </del> <ins> selectedCategory?: string; selectedStep?: string; showTelemetryNotice?: boolean; showWelcome?: boolean; </ins> } export class GettingStartedInput extends EditorInput {
let result: IInsetRenderOutput | undefined = undefined; const [mimeTypes, pick] = this.output.resolveMimeTypes(this._notebookTextModel, undefined); <del> const pickedMimeTypeRenderer = mimeTypes[pick]; </del> <ins> const pickedMimeTypeRenderer = this.output.pickedMimeType || mimeTypes[pick]; </ins> if (mimeTypes.length > 1) { outputItemDiv.style.position = 'relative'; const mimeTypePicker = DOM.$('.multi-mimetype-output');
{ "name": "code-oss-dev", "version": "1.94.0", <del> "distro": "2560b0e8d341a0b6734d28ef71b08e1920ff2501", </del> <ins> "distro": "3617bc772b253b9c3ffd60d2e7165c4d945ac7c7", </ins> "author": { "name": "Microsoft Corporation" },
this._register(editContextAddDisposableListener(this._editContext, 'textupdate', (e) => { const compositionRangeWithinEditor = this._compositionRangeWithinEditor; if (compositionRangeWithinEditor) { <del> const position = this._context.viewModel.getPrimaryCursorState().viewState.position; </del> <ins> const position = this._context.viewModel.getPrimaryCursorState().modelState.position; </ins> const newCompositionRangeWithinEditor = Range.fromPositions(compositionRangeWithinEditor.getStartPosition(), position); this._compositionRangeWithinEditor = newCompositionRangeWithinEditor; }
this._screenReaderSupport.writeScreenReaderContent(); })); this._register(editContextAddDisposableListener(this._editContext, 'compositionstart', (e) => { <del> const position = this._context.viewModel.getPrimaryCursorState().viewState.position; </del> <ins> const position = this._context.viewModel.getPrimaryCursorState().modelState.position; </ins> const newCompositionRange = Range.fromPositions(position, position); this._compositionRangeWithinEditor = newCompositionRange; // Utlimately fires onDidCompositionStart() on the editor to notify for example suggest model of composition state
if (i === this._primarySelection.endLineNumber) { selectionEndOffset += this._primarySelection.endColumn - 1; } else { <del> selectionEndOffset += this._context.viewModel.getLineMaxColumn(i); </del> <ins> selectionEndOffset += this._context.viewModel.model.getLineMaxColumn(i); </ins> } } <del> const endColumnOfEndLineNumber = this._context.viewModel.getLineMaxColumn(this._primarySelection.endLineNumber); </del> <ins> const endColumnOfEndLineNumber = this._context.viewModel.model.getLineMaxColumn(this._primarySelection.endLineNumber); </ins> const rangeOfText = new Range(this._primarySelection.startLineNumber, 1, this._primarySelection.endLineNumber, endColumnOfEndLineNumber); <del> const text = this._context.viewModel.getValueInRange(rangeOfText, EndOfLinePreference.TextDefined); </del> <ins> const text = this._context.viewModel.model.getValueInRange(rangeOfText, EndOfLinePreference.TextDefined); </ins> const textStartPositionWithinEditor = rangeOfText.getStartPosition(); return { text,
this.textModelService.createModelReference(CellUri.generateCellPropertyUri(this.cell.originalDocument.uri, this.cell.original.handle, Schemas.vscodeNotebookCellMetadata)), this.textModelService.createModelReference(CellUri.generateCellPropertyUri(this.cell.modifiedDocument.uri, this.cell.modified.handle, Schemas.vscodeNotebookCellMetadata)) ]); <ins> if (this._isDisposed) { originalMetadataModel.dispose(); modifiedMetadataModel.dispose(); return; } </ins> this._metadataEditorDisposeStore.add(originalMetadataModel); this._metadataEditorDisposeStore.add(modifiedMetadataModel); const vm = this._metadataEditor.createViewModel({ original: originalMetadataModel.object.textEditorModel, modified: modifiedMetadataModel.object.textEditorModel }); <ins> this._metadataEditor.setModel(vm); </ins> // Reduces flicker (compute this before setting the model) // Else when the model is set, the height of the editor will be x, after diff is computed, then height will be y. // & that results in flicker. await vm.waitForDiff(); <del> this._metadataEditor.setModel(vm); </del> <ins> if (this._isDisposed) { return; } </ins> this.cell.metadataHeight = this._metadataEditor.getContentHeight();
import { ILanguageService } from '../../../../editor/common/languages/language.js'; import { tokenizeToString } from '../../../../editor/common/languages/textToHtmlTokenizer.js'; import { IExtensionService } from '../../../services/extensions/common/extensions.js'; <ins> import { markedGfmHeadingIdPlugin } from './markedGfmHeadingIdPlugin.js'; </ins> export const DEFAULT_MARKDOWN_STYLES = ` body {
*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import * as nls from '../../../../nls.js'; import { IPreferencesService, ISetting } from '../../../services/preferences/common/preferences.js'; import { settingKeyToDisplayFormat } from '../../preferences/browser/settingsTreeModels.js'; </del> <ins> import { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js'; import { IAction } from '../../../../base/common/actions.js'; import type { Tokens } from '../../../../base/common/marked/marked.js'; import { Schemas } from '../../../../base/common/network.js'; </ins> import { URI } from '../../../../base/common/uri.js'; <ins> import * as nls from '../../../../nls.js'; import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js'; </ins> import { ConfigurationTarget, IConfigurationService } from '../../../../platform/configuration/common/configuration.js'; import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js'; <del> import { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js'; import { IAction } from '../../../../base/common/actions.js'; </del> import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js'; <del> import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js'; import { Schemas } from '../../../../base/common/network.js'; import { Tokens } from '../../../../base/common/marked/marked.js'; </del> <ins> import { IPreferencesService, ISetting } from '../../../services/preferences/common/preferences.js'; import { settingKeyToDisplayFormat } from '../../preferences/browser/settingsTreeModels.js'; </ins> export class SimpleSettingRenderer { private readonly codeSettingRegex: RegExp;
*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { EditorInput } from '../../../common/editor/editorInput.js'; import { EditorModel } from '../../../common/editor/editorModel.js'; import { URI } from '../../../../base/common/uri.js'; </del> <ins> import { Dimension } from '../../../../base/browser/dom.js'; </ins> import { DisposableStore, IReference } from '../../../../base/common/lifecycle.js'; <del> import { ITextEditorModel, ITextModelService } from '../../../../editor/common/services/resolverService.js'; import { marked, Tokens } from '../../../../base/common/marked/marked.js'; </del> <ins> import * as marked from '../../../../base/common/marked/marked.js'; import { Schemas } from '../../../../base/common/network.js'; </ins> import { isEqual } from '../../../../base/common/resources.js'; <del> import { moduleToContent } from '../common/walkThroughContentProvider.js'; import { Dimension } from '../../../../base/browser/dom.js'; import { EditorInputCapabilities, IUntypedEditorInput } from '../../../common/editor.js'; </del> <ins> import { URI } from '../../../../base/common/uri.js'; import { ITextEditorModel, ITextModelService } from '../../../../editor/common/services/resolverService.js'; </ins> import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js'; <del> import { Schemas } from '../../../../base/common/network.js'; </del> <ins> import { EditorInputCapabilities, IUntypedEditorInput } from '../../../common/editor.js'; import { EditorInput } from '../../../common/editor/editorInput.js'; import { EditorModel } from '../../../common/editor/editorModel.js'; import { markedGfmHeadingIdPlugin } from '../../markdown/browser/markedGfmHeadingIdPlugin.js'; import { moduleToContent } from '../common/walkThroughContentProvider.js'; </ins> class WalkThroughModel extends EditorModel {
const snippets: Promise<IReference<ITextEditorModel>>[] = []; let i = 0; <del> const renderer = new marked.Renderer(); renderer.code = ({ lang }: Tokens.Code) => { </del> <ins> const renderer = new marked.marked.Renderer(); renderer.code = ({ lang }: marked.Tokens.Code) => { </ins> i++; const resource = this.options.resource.with({ scheme: Schemas.walkThroughSnippet, fragment: `${i}.${lang}` }); snippets.push(this.textModelResolverService.createModelReference(resource)); return `<div id="snippet-${resource.fragment}" class="walkThroughEditorContainer" ></div>`; }; <del> content = marked(content, { async: false, renderer }); </del> <ins> const m = new marked.Marked({ renderer }, markedGfmHeadingIdPlugin()); content = m.parse(content, { async: false }); </ins> return Promise.all(snippets) .then(refs => new WalkThroughModel(content, refs)); });
/** * Sanitizes the given `value` and reset the given `node` with it. */ <del> export function safeInnerHtml(node: HTMLElement, value: string): void { </del> <ins> export function safeInnerHtml(node: HTMLElement, value: string, extraDomPurifyConfig?: dompurify.Config): void { </ins> const hook = hookDomPurifyHrefAndSrcSanitizer(defaultSafeProtocols); try { <del> const html = dompurify.sanitize(value, defaultDomPurifyConfig); </del> <ins> const html = dompurify.sanitize(value, { ...defaultDomPurifyConfig, ...extraDomPurifyConfig }); </ins> node.innerHTML = html as unknown as string; } finally { hook.dispose();
const isServerless = platform.isWeb && !accessor.get(IWorkbenchEnvironmentService).remoteAuthority; return ` ## Interactive Editor Playground <del> The core editor in VS Code is packed with features.  This page highlights a number of them and lets you interactively try them out through the use of a number of embedded editors.  For full details on the editor features for VS Code and more head over to our [documentation](command:workbench.action.openDocumentationUrl). </del> <ins> The core editor in VS Code is packed with features.  This page highlights a number of them and lets you interactively try them out through the use of a number of embedded editors.  For full details on the editor features for VS Code and more head over to our [documentation](https://code.visualstudio.com/docs). </ins> * [Multi-cursor Editing](#multi-cursor-editing) - block selection, select all occurrences, add additional cursors and more. * [IntelliSense](#intellisense) - get code assistance and parameter suggestions for your code and external modules.
const innerContent = document.createElement('div'); innerContent.classList.add('walkThroughContent'); // only for markdown files const markdown = this.expandMacros(content); <del> safeInnerHtml(innerContent, markdown); </del> <ins> safeInnerHtml(innerContent, markdown, { ALLOW_UNKNOWN_PROTOCOLS: true }); </ins> this.content.appendChild(innerContent); model.snippets.forEach((snippet, i) => {