@Override protected void buildDialog( Project project, PsiDirectory directory, CreateFileFromTemplateDialog.Builder builder) { builder .setTitle(NEW_HASKELL_FILE) .addKind("Empty module", HaskellIcons.FILE, "Haskell Module") .setValidator( new InputValidatorEx() { @Nullable @Override public String getErrorText(String inputString) { final String error = " is not a valid Haskell module name."; if (inputString.isEmpty()) { return null; } if (VALID_MODULE_NAME_REGEX.matcher(inputString).matches()) { return null; } return '\'' + inputString + '\'' + error; } @Override public boolean checkInput(String inputString) { return true; } @Override public boolean canClose(String inputString) { return getErrorText(inputString) == null; } }); }