public class <error descr="Action class must have a no-argument constructor">MyActionWithoutDefaultCtor</error> extends com.intellij.openapi.actionSystem.AnAction {

  public MyActionWithoutDefaultCtor(String something) {}

}