src/vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant.ts/InlineCompletionsHoverParticipant/renderHoverParts
class InlineCompletionsHoverParticipant:	renderHoverParts(context: IEditorHoverRenderContext, hoverParts: InlineCompletionsHover[]): IDisposable {
		const disposableStore = new DisposableStore();
		const part = hoverParts[0];

		if (this.accessibilityService.isScreenReaderOptimized()) {
			this.renderScreenReaderText(context, part, disposableStore);
		}

		// TODO@hediet: deprecate MenuId.InlineCompletionsActions
		const menu = disposableStore.add(this._menuService.createMenu(
			MenuId.InlineCompletionsActions,
			this._contextKeyService
		));

		const previousAction = context.statusBar.addAction({
			label: nls.localize('showNextInlineSuggestion', "Next"),
			commandId: ShowNextInlineSuggestionAction.ID,
			run: () => this._commandService.executeCommand(ShowNextInlineSuggestionAction.ID)
		});
		const nextAction = context.statusBar.addAction({
			label: nls.localize('showPreviousInlineSuggestion', "Previous"),
			commandId: ShowPreviousInlineSuggestionAction.ID,
			run: () => this._commandService.executeCommand(ShowPreviousInlineSuggestionAction.ID)
		});
		context.statusBar.addAction({
			label: nls.localize('acceptInlineSuggestion', "Accept"),
			commandId: inlineSuggestCommitId,
			run: () => this._commandService.executeCommand(inlineSuggestCommitId)
		});

		const actions = [previousAction, nextAction];
		for (const action of actions) {
			action.setEnabled(false);
		}
		part.hasMultipleSuggestions().then(hasMore => {
			for (const action of actions) {
				action.setEnabled(hasMore);
			}
		});

		for (const command of part.commands) {
			context.statusBar.addAction({
				label: command.title,
				commandId: command.id,
				run: () => this._commandService.executeCommand(command.id, ...(command.arguments || []))
			});
		}

		for (const [_, group] of menu.getActions()) {
			for (const action of group) {
				if (action instanceof MenuItemAction) {
					context.statusBar.addAction({
						label: action.label,
						commandId: action.item.id,
						run: () => this._commandService.executeCommand(action.item.id)
					});
				}
			}
		}

		return disposableStore;
	}