Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.81.1 OS Version: any Steps to Reproduce: extension code, call vscode.commands.executeCommand('vscode.executeInlineValueProvider',('c:/foo'),new vscode.Range(0, 0, 1, 1)); promise is rejected with Error: command '_executeInlineValueProvider' not found I am developing an extension, and was not interested in this specific command, but noticed it was missing when I was looking for an example of a debug related built-in command. I have no use for the command, I am just reporting it, because its in the the built-in commands wiki.
Looks like this was never implemented, the only commit that contains that string is do you have extra context here, should this be removed or fixed up?
I don't have any extra context but I suppose it would make sense for that command to exist?
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
do we automatically add these api commands for all language providers or only if they need to exist for some specific scenario?
For things in we have them upfront but for other providers we don't have strict rules. It's fine to go by request or to treat it as FR
For verification, the only implementation of this API that I am aware of is in java-debug, so you can write an extension that calls and call it while debugging java, or add a dummy provider like this

Discussion:
import { validateWhenClauses } from 'vs/platform/contextkey/common/contextkey'; import { ITextEditorOptions } from 'vs/platform/editor/common/editor'; import { matchesSomeScheme } from 'vs/platform/opener/common/opener'; <del> import { ICallHierarchyItemDto, IIncomingCallDto, IOutgoingCallDto, IRawColorInfo, ITypeHierarchyItemDto, IWorkspaceEditDto } from 'vs/workbench/api/common/extHost.protocol'; </del> <ins> import { ICallHierarchyItemDto, IIncomingCallDto, IInlineValueContextDto, IOutgoingCallDto, IRawColorInfo, ITypeHierarchyItemDto, IWorkspaceEditDto } from 'vs/workbench/api/common/extHost.protocol'; </ins> import { ApiCommand, ApiCommandArgument, ApiCommandResult, ExtHostCommands } from 'vs/workbench/api/common/extHostCommands'; import { CustomCodeAction } from 'vs/workbench/api/common/extHostLanguageFeatures'; import * as typeConverters from 'vs/workbench/api/common/extHostTypeConverters';

// --- debug support new ApiCommand( 'vscode.executeInlineValueProvider', '_executeInlineValueProvider', 'Execute inline value provider', <del> [ApiCommandArgument.Uri, ApiCommandArgument.Range], </del> <ins> [ ApiCommandArgument.Uri, ApiCommandArgument.Range, new ApiCommandArgument<types.InlineValueContext, IInlineValueContextDto>('context', 'An InlineValueContext', v => v && typeof v.frameId === 'number' && v.stoppedLocation instanceof types.Range, v => typeConverters.InlineValueContext.from(v)) ], </ins> new ApiCommandResult<languages.InlineValue[], vscode.InlineValue[]>('A promise that resolves to an array of InlineValue objects', result => { return result.map(typeConverters.InlineValue.to); })

import { IKeyboardEvent, StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { distinct, flatten } from 'vs/base/common/arrays'; import { RunOnceScheduler } from 'vs/base/common/async'; <del> import { CancellationTokenSource } from 'vs/base/common/cancellation'; </del> <ins> import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; </ins> import { memoize } from 'vs/base/common/decorators'; <del> import { onUnexpectedExternalError } from 'vs/base/common/errors'; </del> <ins> import { illegalArgument, onUnexpectedExternalError } from 'vs/base/common/errors'; </ins> import { Event } from 'vs/base/common/event'; import { visit } from 'vs/base/common/json'; import { setProperty } from 'vs/base/common/jsonEdit'; import { KeyCode } from 'vs/base/common/keyCodes'; <del> import { dispose, IDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { IDisposable, dispose } from 'vs/base/common/lifecycle'; </ins> import { basename } from 'vs/base/common/path'; import * as env from 'vs/base/common/platform'; import * as strings from 'vs/base/common/strings'; <ins> import { assertType, isDefined } from 'vs/base/common/types'; </ins> import { Constants } from 'vs/base/common/uint'; <ins> import { URI } from 'vs/base/common/uri'; </ins> import { CoreEditingCommands } from 'vs/editor/browser/coreCommands'; import { ICodeEditor, IEditorMouseEvent, IPartialEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { EditorOption, IEditorHoverOptions } from 'vs/editor/common/config/editorOptions'; import { EditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; <del> import { Range } from 'vs/editor/common/core/range'; </del> <ins> import { IRange, Range } from 'vs/editor/common/core/range'; </ins> import { DEFAULT_WORD_REGEXP } from 'vs/editor/common/core/wordHelper'; import { StandardTokenType } from 'vs/editor/common/encodedTokenAttributes'; <del> import { InlineValueContext } from 'vs/editor/common/languages'; import { IModelDeltaDecoration, InjectedTextCursorStops, ITextModel } from 'vs/editor/common/model'; </del> <ins> import { InlineValue, InlineValueContext } from 'vs/editor/common/languages'; import { IModelDeltaDecoration, ITextModel, InjectedTextCursorStops } from 'vs/editor/common/model'; </ins> import { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from 'vs/editor/common/services/languageFeatureDebounce'; import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures'; <ins> import { IModelService } from 'vs/editor/common/services/model'; </ins> import { ModesHoverController } from 'vs/editor/contrib/hover/browser/hover'; import { HoverStartMode, HoverStartSource } from 'vs/editor/contrib/hover/browser/hoverOperation'; import * as nls from 'vs/nls'; <del> import { ICommandService } from 'vs/platform/commands/common/commands'; </del> <ins> import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands'; </ins> import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; <del> import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; </del> <ins> import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; </ins> import { registerColor } from 'vs/platform/theme/common/colorRegistry'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; import { FloatingEditorClickWidget } from 'vs/workbench/browser/codeeditor';

this.oldDecorations.clear(); } } <ins> CommandsRegistry.registerCommand( '_executeInlineValueProvider', async ( accessor: ServicesAccessor, uri: URI, iRange: IRange, context: InlineValueContext ): Promise<InlineValue[] | null> => { assertType(URI.isUri(uri)); assertType(Range.isIRange(iRange)); if (!context || typeof context.frameId !== 'number' || !Range.isIRange(context.stoppedLocation)) { throw illegalArgument('context'); } const model = accessor.get(IModelService).getModel(uri); if (!model) { throw illegalArgument('uri'); } const range = Range.lift(iRange); const { inlineValuesProvider } = accessor.get(ILanguageFeaturesService); const providers = inlineValuesProvider.ordered(model); const providerResults = await Promise.all(providers.map(provider => provider.provideInlineValues(model, range, context, CancellationToken.None))); return providerResults.flat().filter(isDefined); }); </ins>