Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/inlineEdits/vscode-node/utils/observablesUtils.ts
13405 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { derivedWithSetter, IObservable, ISettableObservable, observableValue } from '../../../../util/vs/base/common/observable';
7
8
export function makeSettable<T>(obs: IObservable<T>): ISettableObservable<T> {
9
const overrideObs = observableValue<T | undefined>('overrideObs', undefined);
10
return derivedWithSetter(overrideObs, (reader) => {
11
return overrideObs.read(reader) ?? obs.read(reader);
12
}, (value, tx) => {
13
overrideObs.set(value, tx);
14
});
15
}
16
17