@Override
  public @NotNull ModCommand perform(@NotNull ActionContext context) {
    int offset = context.offset();
    Document document = context.file().getFileDocument();
    if (document instanceof DocumentWindow window) {
      offset = window.injectedToHost(offset);
      document = window.getDelegate();
    }
    String oldText = document.getText();
    String newText = oldText.substring(0, offset) + myToken + oldText.substring(offset);
    VirtualFile file = Objects.requireNonNull(FileDocumentManager.getInstance().getFile(document));
    return new ModUpdateFileText(file, oldText, newText,
                                 List.of(new ModUpdateFileText.Fragment(offset, 0, myToken.length())));
  }
@Override
  public @NotNull ModCommand perform(@NotNull ActionContext context)