mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
refactor deltaDecorations logic (#17630)
This commit is contained in:
@@ -167,35 +167,31 @@ export class NotebookComponent extends AngularDisposable implements OnInit, OnDe
|
|||||||
public deltaDecorations(newDecorationsRange: NotebookRange | NotebookRange[], oldDecorationsRange: NotebookRange | NotebookRange[]): void {
|
public deltaDecorations(newDecorationsRange: NotebookRange | NotebookRange[], oldDecorationsRange: NotebookRange | NotebookRange[]): void {
|
||||||
if (oldDecorationsRange) {
|
if (oldDecorationsRange) {
|
||||||
if (Array.isArray(oldDecorationsRange)) {
|
if (Array.isArray(oldDecorationsRange)) {
|
||||||
let decoratedCells: string[] = [];
|
let cells = [...new Set(oldDecorationsRange.map(item => item.cell))].filter(c => c.cellType === 'markdown');
|
||||||
oldDecorationsRange.forEach(oldDecorationRange => {
|
cells.forEach(cell => {
|
||||||
if (oldDecorationRange.cell.cellType === 'markdown' && decoratedCells.indexOf(oldDecorationRange.cell.cellGuid) === -1) {
|
let cellOldDecorations = oldDecorationsRange.filter(r => r.cell === cell);
|
||||||
let cell = this.cellEditors.filter(c => c.cellGuid() === oldDecorationRange.cell.cellGuid);
|
let cellEditor = this.cellEditors.find(c => c.cellGuid() === cell.cellGuid);
|
||||||
cell[cell.length - 1].deltaDecorations(undefined, [oldDecorationRange]);
|
cellEditor.deltaDecorations(undefined, cellOldDecorations);
|
||||||
decoratedCells.push(...oldDecorationRange.cell.cellGuid);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (oldDecorationsRange.cell.cellType === 'markdown') {
|
if (oldDecorationsRange.cell.cellType === 'markdown') {
|
||||||
let cell = this.cellEditors.filter(c => c.cellGuid() === oldDecorationsRange.cell.cellGuid);
|
let cell = this.cellEditors.find(c => c.cellGuid() === oldDecorationsRange.cell.cellGuid);
|
||||||
cell[cell.length - 1].deltaDecorations(undefined, oldDecorationsRange);
|
cell.deltaDecorations(undefined, oldDecorationsRange);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (newDecorationsRange) {
|
if (newDecorationsRange) {
|
||||||
if (Array.isArray(newDecorationsRange)) {
|
if (Array.isArray(newDecorationsRange)) {
|
||||||
let decoratedCells: string[] = [];
|
let cells = [...new Set(newDecorationsRange.map(item => item.cell))].filter(c => c.cellType === 'markdown');
|
||||||
newDecorationsRange.forEach(newDecorationRange => {
|
cells.forEach(cell => {
|
||||||
if (newDecorationRange.cell.cellType === 'markdown' && decoratedCells.indexOf(newDecorationRange.cell.cellGuid) === -1) {
|
let cellNewDecorations = newDecorationsRange.filter(r => r.cell === cell);
|
||||||
let cell = this.cellEditors.filter(c => c.cellGuid() === newDecorationRange.cell.cellGuid);
|
let cellEditor = this.cellEditors.find(c => c.cellGuid() === cell.cellGuid);
|
||||||
cell[cell.length - 1].deltaDecorations([newDecorationRange], undefined);
|
cellEditor.deltaDecorations(cellNewDecorations, undefined);
|
||||||
decoratedCells.push(...newDecorationRange.cell.cellGuid);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (newDecorationsRange.cell.cellType === 'markdown') {
|
if (newDecorationsRange.cell.cellType === 'markdown') {
|
||||||
let cell = this.cellEditors.filter(c => c.cellGuid() === newDecorationsRange.cell.cellGuid);
|
let cell = this.cellEditors.find(c => c.cellGuid() === newDecorationsRange.cell.cellGuid);
|
||||||
cell[cell.length - 1].deltaDecorations(newDecorationsRange, undefined);
|
cell.deltaDecorations(newDecorationsRange, undefined);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user