listResolvableActions method

Future<Map<String, ActionMetadata>> listResolvableActions()

Returns every action that can be resolved, keyed by registry key, with dynamic action providers expanded into their individual actions. Used by the reflection API / Dev UI so DAP-provided tools, prompts, and resources are individually listable. Mirrors JS's listResolvableActions.

Implementation

Future<Map<String, ActionMetadata>> listResolvableActions() async {
  final resolvable = <String, ActionMetadata>{};
  for (final action in await listActions()) {
    final key = _getKey(action.actionType.value, action.name);
    resolvable[key] = action;
    if (action is DynamicActionProvider) {
      try {
        resolvable.addAll(await action.getActionMetadataRecord());
      } catch (e, st) {
        print(
          'Error listing actions for Dynamic Action Provider '
          '${action.name}: $e $st',
        );
      }
    }
  }
  return resolvable;
}