From 173a6f91157ef9f844458d7a8a2a55ce85f2edda Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Wed, 20 Aug 2025 23:57:06 +0200 Subject: [PATCH] Improved debug locations --- .../common/observableInternal/observables/baseObservable.ts | 5 +++-- src/vs/editor/browser/observableCodeEditor.ts | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/vs/base/common/observableInternal/observables/baseObservable.ts b/src/vs/base/common/observableInternal/observables/baseObservable.ts index 5b69b0db3b1..f279d10f78d 100644 --- a/src/vs/base/common/observableInternal/observables/baseObservable.ts +++ b/src/vs/base/common/observableInternal/observables/baseObservable.ts @@ -54,7 +54,7 @@ export abstract class ConvenientObservable implements IObservableWit /** @sealed */ public map(fn: (value: T, reader: IReader) => TNew): IObservable; public map(owner: DebugOwner, fn: (value: T, reader: IReader) => TNew): IObservable; - public map(fnOrOwner: DebugOwner | ((value: T, reader: IReader) => TNew), fnOrUndefined?: (value: T, reader: IReader) => TNew): IObservable { + public map(fnOrOwner: DebugOwner | ((value: T, reader: IReader) => TNew), fnOrUndefined?: (value: T, reader: IReader) => TNew, debugLocation: DebugLocation = DebugLocation.ofCaller()): IObservable { const owner = fnOrUndefined === undefined ? undefined : fnOrOwner as DebugOwner; const fn = fnOrUndefined === undefined ? fnOrOwner as (value: T, reader: IReader) => TNew : fnOrUndefined; @@ -80,7 +80,8 @@ export abstract class ConvenientObservable implements IObservableWit }, debugReferenceFn: fn, }, - (reader) => fn(this.read(reader), reader) + (reader) => fn(this.read(reader), reader), + debugLocation, ); } diff --git a/src/vs/editor/browser/observableCodeEditor.ts b/src/vs/editor/browser/observableCodeEditor.ts index cf69c10810f..5af51f2cf79 100644 --- a/src/vs/editor/browser/observableCodeEditor.ts +++ b/src/vs/editor/browser/observableCodeEditor.ts @@ -5,7 +5,7 @@ import { equalsIfDefined, itemsEquals } from '../../base/common/equals.js'; import { Disposable, DisposableStore, IDisposable, toDisposable } from '../../base/common/lifecycle.js'; -import { IObservable, IObservableWithChange, ITransaction, TransactionImpl, autorun, autorunOpts, derived, derivedOpts, derivedWithSetter, observableFromEvent, observableSignal, observableValue, observableValueOpts } from '../../base/common/observable.js'; +import { DebugLocation, IObservable, IObservableWithChange, ITransaction, TransactionImpl, autorun, autorunOpts, derived, derivedOpts, derivedWithSetter, observableFromEvent, observableSignal, observableValue, observableValueOpts } from '../../base/common/observable.js'; import { EditorOption, FindComputedEditorOptionValueById } from '../common/config/editorOptions.js'; import { LineRange } from '../common/core/ranges/lineRange.js'; import { OffsetRange } from '../common/core/ranges/offsetRange.js'; @@ -280,10 +280,10 @@ export class ObservableCodeEditor extends Disposable { public readonly domNode; - public getOption(id: T): IObservable> { + public getOption(id: T, debugLocation = DebugLocation.ofCaller()): IObservable> { return observableFromEvent(this, cb => this.editor.onDidChangeConfiguration(e => { if (e.hasChanged(id)) { cb(undefined); } - }), () => this.editor.getOption(id)); + }), () => this.editor.getOption(id), debugLocation); } public setDecorations(decorations: IObservable): IDisposable {