private static void checkFile(final PsiFile file, final ProblemsHolder problemsHolder) { file.accept( new PsiRecursiveElementWalkingVisitor() { @Override public void visitElement(PsiElement element) { if (element instanceof ElixirNoParenthesesStrict) { LocalQuickFix localQuickFix = new RemoveSpaceInFrontOfNoParenthesesStrict( element.getParent() ); problemsHolder.registerProblem( element, "unexpected parenthesis. If you are making a " + "function call, do not insert spaces in between the function name and the " + "opening parentheses.", ProblemHighlightType.ERROR, localQuickFix ); } super.visitElement(element); } } ); } }
public static void resolveAllReferences(PsiFile file) { file.accept(new PsiRecursiveElementVisitor() { @Override public void visitElement(@NotNull PsiElement o) { for (PsiReference reference : o.getReferences()) { reference.resolve(); } super.visitElement(o); } }); }
private static void checkFile(final PsiFile file, final ProblemsHolder problemsHolder) { file.accept( new PsiRecursiveElementWalkingVisitor() { @Override
private static void checkFile(final PsiFile file, final ProblemsHolder problemsHolder) { file.accept( new PsiRecursiveElementWalkingVisitor() { @Override
private List<PsiElement> localErrors(@NotNull Language language) { final FileViewProvider fileViewProvider = myFile.getViewProvider(); PsiFile root = fileViewProvider.getPsi(language); final List<PsiElement> errorElementList = new LinkedList<>(); root.accept( new PsiRecursiveElementWalkingVisitor() { @Override public void visitElement(PsiElement element) { if (element instanceof PsiErrorElement) { errorElementList.add(element); } super.visitElement(element); } } ); return errorElementList; }
file.accept(new GoRecursiveVisitor() { @Override public void visitTypeReferenceExpression(@NotNull GoTypeReferenceExpression o) {
@Nullable public static <T extends PsiElement> T createFromText(@NotNull Project p, final Class<T> aClass, String text) { final PsiElement[] ret = new PsiElement[]{null}; createDummyFile(p, text).accept(new PsiRecursiveElementWalkingVisitor() { public void visitElement(PsiElement element) { if(ret[0] == null && aClass.isInstance(element)) { ret[0] = element; } super.visitElement(element); } }); return (T) ret[0]; }
private Set<String> getPartialJsonSwaggerFileNames(final PsiFile file) { final Set<String> result = new HashSet<>(); file.accept( new JsonRecursiveElementVisitor() { @Override public void visitProperty(@NotNull JsonProperty property) { if (SwaggerConstants.REF_KEY.equals(property.getName())) { if (property.getValue() != null) { final String refValue = StringUtils.removeAllQuotes(property.getValue().getText()); if (refValue.contains(FileConstants.JSON_FILE_NAME_SUFFIX)) { result.add( extractFileNameFromFileRefValue(refValue) + DELIMITER + getSwaggerFileType(property.getValue(), refValue)); } } } super.visitProperty(property); } }); return result; }
private Set<String> getPartialJsonOpenApiFileNames(final PsiFile file) { final Set<String> result = new HashSet<>(); file.accept( new JsonRecursiveElementVisitor() { @Override public void visitProperty(@NotNull JsonProperty property) { if (OpenApiConstants.REF_KEY.equals(property.getName())) { if (property.getValue() != null) { final String refValue = StringUtils.removeAllQuotes(property.getValue().getText()); if (isJsonFile(refValue)) { result.add( extractFileNameFromFileRefValue(refValue) + DELIMITER + getOpenApiFileTypeFromRefElement(property.getValue(), refValue)); } } } super.visitProperty(property); } private boolean isJsonFile(final String refValue) { return refValue.contains(FileConstants.JSON_FILE_NAME_SUFFIX); } }); return result; }
private Set<String> getPartialYamlOpenApiFileNames(final PsiFile file) { final Set<String> result = new HashSet<>(); file.accept( new PsiRecursiveElementVisitor() { @Override public void visitElement(final PsiElement element) { if (element instanceof YAMLKeyValue) { final YAMLKeyValue yamlKeyValue = (YAMLKeyValue) element; if (OpenApiConstants.REF_KEY.equals(yamlKeyValue.getKeyText())) { final String refValue = StringUtils.removeAllQuotes(yamlKeyValue.getValueText()); if (isYamlFile(refValue)) { result.add( extractFileNameFromFileRefValue(refValue) + DELIMITER + getOpenApiFileTypeFromRefElement(yamlKeyValue.getValue(), refValue)); } } } super.visitElement(element); } private boolean isYamlFile(String refValue) { return refValue.contains(FileConstants.YAML_FILE_NAME_SUFFIX) || refValue.contains(FileConstants.YML_FILE_NAME_SUFFIX); } }); return result; }
private Set<String> getPartialYamlSwaggerFileNames(final PsiFile file) { final Set<String> result = new HashSet<>(); file.accept( new PsiRecursiveElementVisitor() { @Override public void visitElement(final PsiElement element) { if (element instanceof YAMLKeyValue) { final YAMLKeyValue yamlKeyValue = (YAMLKeyValue) element; if (SwaggerConstants.REF_KEY.equals(yamlKeyValue.getKeyText())) { final String refValue = StringUtils.removeAllQuotes(yamlKeyValue.getValueText()); if (isYamlFile(refValue)) { result.add( extractFileNameFromFileRefValue(refValue) + DELIMITER + getSwaggerFileType(yamlKeyValue.getValue(), refValue)); } } } super.visitElement(element); } private boolean isYamlFile(String refValue) { return refValue.contains(FileConstants.YAML_FILE_NAME_SUFFIX) || refValue.contains(FileConstants.YML_FILE_NAME_SUFFIX); } }); return result; }
@NotNull @Override public DataIndexer<String, DispatcherEvent, FileContent> getIndexer() { return inputData -> { Map<String, DispatcherEvent> map = new HashMap<>(); PsiFile psiFile = inputData.getPsiFile(); if(!Symfony2ProjectComponent.isEnabledForIndex(psiFile.getProject())) { return map; } psiFile.accept(new MyPsiRecursiveElementWalkingVisitor(map)); return map; }; }
@NotNull public static PsiElement createYamlPsiFromText(Project p, final IElementType type, @NotNull String text) { final Ref<PsiElement> ret = new Ref<>(); PsiFile dummyFile = createDummyFile(p, text); dummyFile.accept(new PsiRecursiveElementWalkingVisitor() { @Override public void visitElement(PsiElement element) { if(element.getNode() == type) { ret.set(element); } super.visitElement(element); } }); assert !ret.isNull() : "cannot create element from text:\n" + dummyFile.getText(); return ret.get(); }
psiFile.accept(new PsiRecursiveElementWalkingVisitor() {
@NotNull @Override public DataIndexer<String, ContainerBuilderCall, FileContent> getIndexer() { return inputData -> { Map<String, ContainerBuilderCall> map = new THashMap<>(); PsiFile psiFile = inputData.getPsiFile(); if(!(psiFile instanceof PhpFile) || !Symfony2ProjectComponent.isEnabledForIndex(psiFile.getProject()) || !isValidForIndex(inputData, psiFile) ){ return map; } psiFile.accept(new MyPsiRecursiveElementWalkingVisitor(map)); return map; }; }
psiFile.accept(new AnnotationRouteElementWalkingVisitor(map));
public void testMultipleCorrectQueriesInDifferentLines() { parametersService.registerParametersProvider(emptyParametersProvider); PsiFile psiFile = myFixture.configureByText("test.cyp", "MATCH (n) RETURN *;\nMATCH (m) RETURN m;"); psiFile.accept(statementCollector); verify(eventMock, times(0)).handleError(any(), any()); assertThat(statementCollector.hasErrors()) .isFalse(); assertThat(statementCollector.getParameters()) .isEmpty(); assertThat(statementCollector.getQueries()) .containsExactly("MATCH (n) RETURN *;", "MATCH (m) RETURN m;"); }
public void testOneQueryWithError() { parametersService.registerParametersProvider(emptyParametersProvider); PsiFile psiFile = myFixture.configureByText("test.cyp", "MATCH () ETURN n;"); psiFile.accept(statementCollector); verify(eventMock, times(0)).handleError(any(), any()); assertThat(statementCollector.hasErrors()) .isTrue(); assertThat(statementCollector.getParameters()) .isEmpty(); assertThat(statementCollector.getQueries()) .isEmpty(); }
public void testMultipleCorrectQueriesInDifferentLinesWithParameters() { parametersService.registerParametersProvider(validParametersProvider); PsiFile psiFile = myFixture.configureByText("test.cyp", "CREATE (n {name: $name});\nMATCH (m) RETURN m;"); psiFile.accept(statementCollector); verify(eventMock, times(0)).handleError(any(), any()); assertThat(statementCollector.hasErrors()) .isFalse(); assertThat(statementCollector.getParameters()) .containsValues("Andrew"); assertThat(statementCollector.getQueries()) .containsExactly("CREATE (n {name: $name});", "MATCH (m) RETURN m;"); }
public void testParameterExtractionErrorOccurs() { parametersService.registerParametersProvider(wrongParametersProvider); PsiFile psiFile = myFixture.configureByText("test.cyp", "CREATE (n {name: $name});\nMATCH (m) RETURN m;"); psiFile.accept(statementCollector); verify(eventMock, times(1)).handleError(any(), any()); assertThat(statementCollector.hasErrors()) .isTrue(); assertThat(statementCollector.getParameters()) .isEmpty(); assertThat(statementCollector.getQueries()) .isEmpty(); } }