@NotNull public static Collection<XmlTag> getXmlContainerServiceDefinition(PsiFile psiFile) { Collection<XmlTag> xmlTags = new ArrayList<>(); for(XmlTag xmlTag: PsiTreeUtil.getChildrenOfTypeAsList(psiFile.getFirstChild(), XmlTag.class)) { if(xmlTag.getName().equals("container")) { for(XmlTag servicesTag: xmlTag.getSubTags()) { if(servicesTag.getName().equals("services")) { for(XmlTag parameterTag: servicesTag.getSubTags()) { if(parameterTag.getName().equals("service")) { xmlTags.add(parameterTag); } } } } } } return xmlTags; }
@Nullable public static PsiElement getLocalServiceName(PsiFile psiFile, String serviceName) { if(!(psiFile.getFirstChild() instanceof XmlDocument)) { return null; } XmlTag xmlTags[] = PsiTreeUtil.getChildrenOfType(psiFile.getFirstChild(), XmlTag.class); if(xmlTags == null) { return null; } for(XmlTag xmlTag: xmlTags) { if(xmlTag.getName().equals("container")) { for(XmlTag servicesTag: xmlTag.getSubTags()) { if(servicesTag.getName().equals("services")) { for(XmlTag serviceTag: servicesTag.getSubTags()) { String serviceNameId = serviceTag.getAttributeValue("id"); if(serviceNameId != null && serviceNameId.equalsIgnoreCase(serviceName)) { return serviceTag; } } } } } } return null; }
@Nullable public static PsiElement getLocalParameterName(PsiFile psiFile, String serviceName) { if(!(psiFile.getFirstChild() instanceof XmlDocumentImpl)) { return null; } XmlTag xmlTags[] = PsiTreeUtil.getChildrenOfType(psiFile.getFirstChild(), XmlTag.class); if(xmlTags == null) { return null; } for(XmlTag xmlTag: xmlTags) { if(xmlTag.getName().equals("container")) { for(XmlTag servicesTag: xmlTag.getSubTags()) { if(servicesTag.getName().equals("parameters")) { for(XmlTag serviceTag: servicesTag.getSubTags()) { XmlAttribute attrValue = serviceTag.getAttribute("key"); if(attrValue != null) { String serviceNameId = attrValue.getValue(); if(serviceNameId != null && serviceNameId.equals(serviceName)) { return serviceTag; } } } } } } } return null; }
Set<XmlAttribute> yamlKeyValues = new HashSet<>(); for(XmlTag xmlTag: PsiTreeUtil.getChildrenOfTypeAsList(psiFile.getFirstChild(), XmlTag.class)) { if(xmlTag.getName().equals("container")) { for(XmlTag servicesTag: xmlTag.getSubTags()) {
List<DoctrineModelField> modelFields = new ArrayList<>(); PsiElement yamlDocument = psiFile.getFirstChild(); if(yamlDocument instanceof YAMLDocument) { PsiElement arrayKeyValue = yamlDocument.getFirstChild();
public static PsiElement createShebang(Project project, String command, boolean addNewline) { String text = "#!" + command + (addNewline ? "\n" : ""); return createDummyBashFile(project, text).getFirstChild(); }
public static PsiElement createNewline(Project project) { String text = "\n"; return createDummyBashFile(project, text).getFirstChild(); }
@Override protected void run(@NotNull Result result) throws Throwable { psiFile.deleteChildRange(psiFile.getFirstChild(), psiFile.getLastChild()); psiFile.addRange(newPsiFile.getFirstChild(), newPsiFile.getLastChild()); } };
public static BnfRule createRuleFromText(Project project, String text) { PsiElement firstChild = createFile(project, text).getFirstChild(); LOG.assertTrue(firstChild instanceof BnfRule, text); //noinspection ConstantConditions return (BnfRule)firstChild; }
@Override protected void run(final Result result) throws Throwable { psiFile.deleteChildRange(psiFile.getFirstChild(), psiFile.getLastChild()); psiFile.addRange(newPsiFile.getFirstChild(), newPsiFile.getLastChild()); } };
public static PsiElement createFileReference(Project project, String content) { PsiElement firstChild = createDummyBashFile(project, ". " + content).getFirstChild(); return ((BashIncludeCommand) firstChild).getFileReference(); }
public static BashGenericCommand createCommand(Project project, String command) { return (BashGenericCommand) createDummyBashFile(project, command).getFirstChild().getFirstChild(); }
public static BnfAttr createAttributeFromText(Project project, String text) { PsiElement firstChild = createFile(project, "{\n " + text + "\n}").getFirstChild(); LOG.assertTrue(firstChild instanceof BnfAttrs, text); //noinspection ConstantConditions List<BnfAttr> attrList = ((BnfAttrs) firstChild).getAttrList(); LOG.assertTrue(attrList.size() == 1, text); return attrList.get(0); }
private static PsiElement useDoubleBrackets(Project project, String command) { String newCommand = "[[" + command + "]]"; for (Replacement replacement : Replacement.values()) { newCommand = replacement.apply(newCommand); } PsiFile dummyBashFile = BashPsiElementFactory.createDummyBashFile(project, newCommand); return dummyBashFile.getFirstChild(); }
public static PsiElement createComposedVar(Project project, String varName) { String text = "${" + varName + "}"; PsiElement command = createDummyBashFile(project, text).getFirstChild().getFirstChild(); final PsiElement[] result = new PsiElement[1]; BashPsiUtils.visitRecursively(command, new BashVisitor() { @Override public void visitComposedVariable(BashComposedVar composedVar) { result[0] = composedVar; } }); return result[0]; }
public static PsiElement createAssignmentWord(Project project, String name) { final PsiElement assignmentCommand = createDummyBashFile(project, name + "=a").getFirstChild(); return assignmentCommand.getFirstChild().getFirstChild(); }
public static PsiElement createWord(Project project, String name) { return createDummyBashFile(project, name).getFirstChild().getFirstChild().getFirstChild(); }
@Nullable @Override public PsiElement getCustomDocumentationElement(@NotNull Editor editor, @NotNull PsiFile file, @Nullable PsiElement contextElement) { if (contextElement instanceof PsiFile) { PsiFile podFile = ((PsiFile)contextElement).getViewProvider().getPsi(PodLanguage.INSTANCE); if (podFile != null && podFile.getChildren().length == 1 && podFile.getFirstChild().getNode().getElementType() == PodElementTypes.POD_OUTER) { return null; } return podFile; } else if (contextElement != null) { return getCustomDocumentationElement(editor, file, contextElement.getParent()); } return null; } }
public static PsiElement createVariable(Project project, String name, boolean withBraces) { if (withBraces) { final PsiElement[] result = new PsiElement[1]; BashPsiUtils.visitRecursively(createComposedVar(project, name), new BashVisitor() { @Override public void visitVarUse(BashVar var) { result[0] = var; } }); return result[0]; } String text = "$" + name; PsiElement command = createDummyBashFile(project, text).getFirstChild().getFirstChild(); return command.getFirstChild().getFirstChild(); }
@Override public void visitFile(final PsiFile file) { PsiElement child = file.getFirstChild(); while (child != null) { if (child instanceof PsiWhiteSpace || child instanceof PsiComment || child instanceof CompoundExpression && getNextSiblingSkippingWhitespace(child) == null) { child = child.getNextSibling(); continue; } if (child.getNextSibling() instanceof PsiWhiteSpace) { int errorOffset = child.getNextSibling().getTextOffset(); holder.registerProblem(file, TextRange.from(Math.max(errorOffset, 0), 0), InspectionBundle.message("consistent.compound.expression.in.file.message"), new ConsistentCompoundExpressionQuickFix()); } child = child.getNextSibling(); } } };