private void reportMissingOnClickProblem( OnClickConverter.MyReference reference, PsiClass activity, String methodName, boolean incorrectSignature) { String activityName = activity.getName(); if (activityName == null) { activityName = ""; } final String message = incorrectSignature ? AndroidBundle.message( "android.inspections.on.click.missing.incorrect.signature", methodName, activityName) : AndroidBundle.message( "android.inspections.on.click.missing.problem", methodName, activityName); final LocalQuickFix[] fixes = StringUtil.isJavaIdentifier(methodName) ? new LocalQuickFix[] {new MyQuickFix(methodName, reference.getConverter(), activity)} : LocalQuickFix.EMPTY_ARRAY; myResult.add( myInspectionManager.createProblemDescriptor( reference.getElement(), reference.getRangeInElement(), message, ProblemHighlightType.GENERIC_ERROR_OR_WARNING, myOnTheFly, fixes)); }
public boolean shouldPreviewUsages(ChangeInfo changeInfo, UsageInfo[] usages) { if (!StringUtil.isJavaIdentifier(changeInfo.getNewName())) return true; for (UsageInfo usage : usages) { if (usage instanceof GrMethodCallUsageInfo) { if (((GrMethodCallUsageInfo) usage).isPossibleUsage()) return true; } } return false; }
private void doVisitElement(PsiElement element) { CompiledPattern pattern = myGlobalVisitor.getContext().getPattern(); if (myGlobalVisitor.getCodeBlockLevel() == 0) { initTopLevelElement(element); return; } if (canBePatternVariable(element) && pattern.isRealTypedVar(element)) { myGlobalVisitor.handle(element); final MatchingHandler handler = pattern.getHandler(element); handler.setFilter( new NodeFilter() { public boolean accepts(PsiElement other) { return canBePatternVariableValue(other); } }); super.visitElement(element); return; } super.visitElement(element); if (myGlobalVisitor.getContext().getSearchHelper().doOptimizing() && element instanceof LeafElement) { ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(element.getLanguage()); if (parserDefinition != null) { String text = element.getText(); // todo: support variables inside comments boolean flag = true; if (StringUtil.isJavaIdentifier(text) && flag) { myGlobalVisitor.processTokenizedName( text, true, GlobalCompilingVisitor.OccurenceKind.CODE); } } } }
private boolean validateInputData() { if (!isGroovyMethodName(getNewName())) { showErrorHint(message("name.is.wrong", getNewName())); return false; } if (!checkType(myReturnTypeCodeFragment, true)) { showErrorHint(message("return.type.is.wrong")); return false; } List<GrTableParameterInfo> parameterInfos = myParameterModel.getParameterInfos(); for (int i = 0; i < parameterInfos.size(); i++) { GrTableParameterInfo info = parameterInfos.get(i); if (!StringUtil.isJavaIdentifier(info.getName())) { showErrorHint(message("name.is.wrong", info.getName())); return false; } if (!checkType(info.getTypeFragment(), i == parameterInfos.size() - 1)) { showErrorHint(message("type.for.parameter.is.incorrect", info.getName())); return false; } String defaultValue = info.getDefaultValue(); final String initializer = info.getDefaultInitializerFragment().getText(); if (info.getOldIndex() < 0 && defaultValue.trim().length() == 0 && initializer.trim().length() == 0) { showErrorHint(message("specify.default.value", info.getName())); return false; } } ThrownExceptionInfo[] exceptionInfos = myExceptionTableModel.getThrownExceptions(); PsiTypeCodeFragment[] typeCodeFragments = myExceptionTableModel.getTypeCodeFragments(); for (int i = 0; i < exceptionInfos.length; i++) { ThrownExceptionInfo exceptionInfo = exceptionInfos[i]; PsiTypeCodeFragment typeCodeFragment = typeCodeFragments[i]; try { PsiType type = typeCodeFragment.getType(); if (!(type instanceof PsiClassType)) { showErrorHint( GroovyRefactoringBundle.message( "changeSignature.wrong.type.for.exception", typeCodeFragment.getText())); return false; } PsiClassType throwable = JavaPsiFacade.getInstance(myMethod.getProject()) .getElementFactory() .createTypeByFQClassName("java.lang.Throwable", myMethod.getResolveScope()); if (!throwable.isAssignableFrom(type)) { showErrorHint( GroovyRefactoringBundle.message( "changeSignature.not.throwable.type", typeCodeFragment.getText())); return false; } exceptionInfo.setType((PsiClassType) type); } catch (PsiTypeCodeFragment.TypeSyntaxException e) { showErrorHint( GroovyRefactoringBundle.message( "changeSignature.wrong.type.for.exception", typeCodeFragment.getText())); return false; } catch (PsiTypeCodeFragment.NoTypeException e) { showErrorHint(GroovyRefactoringBundle.message("changeSignature.no.type.for.exception")); return false; } } return true; }
public static boolean isJavaIdentifier(@NotNull String identifier, @NotNull LanguageLevel level) { return StringUtil.isJavaIdentifier(identifier) && !JavaLexer.isKeyword(identifier, level); }