import { system } from "@silverbulletmd/silverbullet/syscalls";
import type { CompleteEvent } from "../../plug-api/types.ts";

export async function commandComplete(completeEvent: CompleteEvent) {
  const match = /\{\[([^\]\[]*)$/.exec(completeEvent.linePrefix);

  if (!match) {
    return null;
  }
  const allCommands = await system.listCommands();

  return {
    from: completeEvent.pos - match[1].length,
    options: Object.keys(allCommands).map((commandName) => ({
      label: commandName,
      type: "command",
    })),
  };
}