@Override
  public void doInvoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
    final List<PyTargetExpression> targets = findSuitableTargetsUnderCaret(project, editor, file);
    assert targets.size() == 1;
    final PyTargetExpression annotationTarget = targets.get(0);
    try {
      if (preferSyntacticAnnotation(annotationTarget)) {
        insertVariableAnnotation(annotationTarget);
      }
      else {
        insertVariableTypeComment(annotationTarget);
      }
    }
    catch (Pep484IncompatibleTypeException e) {
      PythonUiService.getInstance().showErrorHint(editor, e.getMessage());
    }
  }
@Override
  public void doInvoke(@NotNull Project project, Editor editor, PsiFile file)