1889
1890
private _changeDecorationImpl(ownerId: number, decorationId: string, _range: IRange): void {
1891
>
const node = this._decorations[decorationId];
textModel.ts
1892
>
if (!node) {
1893
return;
1894
}
1896
>
if (node.options.after) {
1897
const oldRange = this.getDecorationRange(decorationId);
1898
this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange!.endLineNumber);
1899
}
1901
const oldRange = this.getDecorationRange(decorationId);
1902
this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange!.startLineNumber);
1903
}
1905
const oldRange = this.getDecorationRange(decorationId);
1906
this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId, decorationId, oldRange!.startLineNumber, null);
1907
}
1909
const oldRange = this.getDecorationRange(decorationId);
1910
this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId, node.id, oldRange!.startLineNumber);
1911
}
1913
>
const range = this._validateRangeRelaxedNoAllocations(_range);
1914
>
const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);
1915
>
const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);
1916
>
1917
>
this._decorationsTree.delete(node);
1918
>
node.reset(this.getVersionId(), startOffset, endOffset, range);
1919
>
this._decorationsTree.insert(node);
1920
>
this._onDidChangeDecorations.checkAffectedAndFire(node.options);
1921
>
1922
>
if (node.options.after) {
1923
this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);
1924
}
1926
this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);
1927
}
1929
this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId, decorationId, range.startLineNumber, node.options.lineHeight);
1930
}
1932
this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId, node.id, range.startLineNumber);
1933
}
1935
1936
private _changeDecorationOptionsImpl(ownerId: number, decorationId: string, options: ModelDecorationOptions): void {