src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.ts/SynchronizedInlineCompletionsCache/constructor
class SynchronizedInlineCompletionsCache:	constructor(
		completionsSource: TrackedInlineCompletions,
		private readonly editor: IActiveCodeEditor,
		private readonly onChange: () => void,
		public readonly triggerKind: InlineCompletionTriggerKind,
	) {
		super();

		const decorationIds = editor.changeDecorations((changeAccessor) => {
			return changeAccessor.deltaDecorations(
				[],
				completionsSource.items.map(i => ({
					range: i.range,
					options: {
						description: 'inline-completion-tracking-range'
					},
				}))
			);
		});

		this._register(toDisposable(() => {
			this.isDisposing = true;
			editor.removeDecorations(decorationIds);
		}));

		this.completions = completionsSource.items.map((c, idx) => new CachedInlineCompletion(c, decorationIds[idx]));

		this._register(editor.onDidChangeModelContent(() => {
			this.updateRanges();
		}));

		this._register(completionsSource);
	}