本文整理汇总了Java中com.intellij.psi.xml.XmlProlog类的典型用法代码示例。如果您正苦于以下问题:Java XmlProlog类的具体用法?Java XmlProlog怎么用?Java XmlProlog使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
XmlProlog类属于com.intellij.psi.xml包,在下文中一共展示了XmlProlog类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: registerPageLanguage
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
public void registerPageLanguage(final Project project, final XmlFile containingFile, final String languageName) {
new WriteCommandAction.Simple(project, getFamilyName()) {
@Override
protected void run() {
final PsiFileFactory factory = PsiFileFactory.getInstance(project);
final XmlFile dummyFile = (XmlFile)factory.createFileFromText("_Dummy_.fxml", StdFileTypes.XML,
"<?language " + languageName + "?>");
final XmlDocument document = dummyFile.getDocument();
if (document != null) {
final XmlProlog prolog = document.getProlog();
final Collection<XmlProcessingInstruction> instructions = PsiTreeUtil.findChildrenOfType(prolog, XmlProcessingInstruction.class);
LOG.assertTrue(instructions.size() == 1);
final XmlDocument xmlDocument = containingFile.getDocument();
if (xmlDocument != null) {
final XmlProlog xmlProlog = xmlDocument.getProlog();
if (xmlProlog != null) {
final PsiElement element = xmlProlog.addBefore(instructions.iterator().next(), xmlProlog.getFirstChild());
xmlProlog.addAfter(PsiParserFacade.SERVICE.getInstance(project).createWhiteSpaceFromText("\n\n"), element);
}
}
}
}
}.execute();
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:25,代码来源:JavaFxInjectPageLanguageIntention.java
示例2: registerPageLanguage
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private void registerPageLanguage(final Project project, final XmlFile containingFile, final String languageName) {
new WriteCommandAction.Simple(project, getFamilyName()) {
@Override
protected void run() {
final PsiFileFactory factory = PsiFileFactory.getInstance(project);
final XmlFile dummyFile = (XmlFile)factory.createFileFromText("_Dummy_.fxml", StdFileTypes.XML,
"<?language " + languageName + "?>");
final XmlDocument document = dummyFile.getDocument();
if (document != null) {
final XmlProlog prolog = document.getProlog();
final Collection<XmlProcessingInstruction> instructions = PsiTreeUtil.findChildrenOfType(prolog, XmlProcessingInstruction.class);
LOG.assertTrue(instructions.size() == 1);
final XmlDocument xmlDocument = containingFile.getDocument();
if (xmlDocument != null) {
final XmlProlog xmlProlog = xmlDocument.getProlog();
if (xmlProlog != null) {
final PsiElement element = xmlProlog.addBefore(instructions.iterator().next(), xmlProlog.getFirstChild());
xmlProlog.addAfter(PsiParserFacade.SERVICE.getInstance(project).createWhiteSpaceFromText("\n\n"), element);
}
}
}
}
}.execute();
}
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:25,代码来源:JavaFxInjectPageLanguageIntention.java
示例3: registerPageLanguage
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private void registerPageLanguage(final Project project, final XmlFile containingFile, final String languageName) {
new WriteCommandAction.Simple(project, getFamilyName()) {
@Override
protected void run() {
final PsiFileFactory factory = PsiFileFactory.getInstance(project);
final XmlFile dummyFile = (XmlFile)factory.createFileFromText("_Dummy_.fxml", XmlFileType.INSTANCE,
"<?language " + languageName + "?>");
final XmlDocument document = dummyFile.getDocument();
if (document != null) {
final XmlProlog prolog = document.getProlog();
final Collection<XmlProcessingInstruction> instructions = PsiTreeUtil.findChildrenOfType(prolog, XmlProcessingInstruction.class);
LOG.assertTrue(instructions.size() == 1);
final XmlDocument xmlDocument = containingFile.getDocument();
if (xmlDocument != null) {
final XmlProlog xmlProlog = xmlDocument.getProlog();
if (xmlProlog != null) {
final PsiElement element = xmlProlog.addBefore(instructions.iterator().next(), xmlProlog.getFirstChild());
xmlProlog.addAfter(PsiParserFacade.SERVICE.getInstance(project).createWhiteSpaceFromText("\n\n"), element);
}
}
}
}
}.execute();
}
开发者ID:consulo,项目名称:consulo-javafx,代码行数:25,代码来源:JavaFxInjectPageLanguageIntention.java
示例4: parseInstructions
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private static List<String> parseInstructions(XmlFile file, String instructionName) {
List<String> definedImports = new ArrayList<String>();
XmlDocument document = file.getDocument();
if (document != null) {
XmlProlog prolog = document.getProlog();
final Collection<XmlProcessingInstruction>
instructions = new ArrayList<XmlProcessingInstruction>(PsiTreeUtil.findChildrenOfType(prolog, XmlProcessingInstruction.class));
for (final XmlProcessingInstruction instruction : instructions) {
final String instructionTarget = getInstructionTarget(instructionName, instruction);
if (instructionTarget != null) {
definedImports.add(instructionTarget);
}
}
}
return definedImports;
}
开发者ID:consulo,项目名称:consulo-javafx,代码行数:18,代码来源:JavaFxPsiUtil.java
示例5: insertImportWhenNeeded
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
public static void insertImportWhenNeeded(XmlFile xmlFile,
String shortName,
String qualifiedName) {
if (shortName != null && findPsiClass(shortName, xmlFile.getRootTag()) == null) {
final XmlDocument document = xmlFile.getDocument();
if (document != null) {
final XmlProcessingInstruction processingInstruction = createSingleImportInstruction(qualifiedName, xmlFile.getProject());
final XmlProlog prolog = document.getProlog();
if (prolog != null) {
prolog.add(processingInstruction);
} else {
document.addBefore(processingInstruction, document.getRootTag());
}
PostprocessReformattingAspect.getInstance(xmlFile.getProject()).doPostponedFormatting(xmlFile.getViewProvider());
}
}
}
开发者ID:consulo,项目名称:consulo-javafx,代码行数:18,代码来源:JavaFxPsiUtil.java
示例6: is23
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private static boolean is23(final ConvertContext context) {
final DomElement element = DomUtil.getFileElement(context.getInvocationElement()).getRootElement();
final XmlTag tag = element.getXmlTag();
if (tag != null && "web-app".equals(element.getXmlElementName()) && tag.getAttribute("version") == null) {
XmlDocument document = (XmlDocument)tag.getParent();
final XmlProlog prolog = document.getProlog();
if (prolog != null) {
final XmlDoctype doctype = prolog.getDoctype();
if (doctype != null) {
final String uri = doctype.getDtdUri();
if (uri != null && uri.contains("2_3")) return true;
}
}
return false;
}
return true;
}
开发者ID:consulo,项目名称:consulo-javaee,代码行数:18,代码来源:ResAuthConverter.java
示例7: invoke
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
final XmlTag anchor = getAnchor(element);
if (anchor == null) return;
PsiElement prevSibling = anchor.getPrevSibling();
while (prevSibling instanceof PsiWhiteSpace || prevSibling instanceof XmlText) {
prevSibling = prevSibling.getPrevSibling();
}
if (prevSibling instanceof XmlProlog) {
prevSibling = prevSibling.getLastChild();
if (prevSibling != null && !(prevSibling instanceof XmlComment)) {
prevSibling = PsiTreeUtil.getPrevSiblingOfType(prevSibling, XmlComment.class);
}
}
if (prevSibling instanceof XmlComment) {
final XmlComment comment = (XmlComment)prevSibling;
final String text = XmlUtil.getCommentText(comment);
if (text != null && InspectionUtil.SUPPRESSION_PATTERN.matcher(text).matches()) {
final String s = text.trim() + ", " + myToolId;
final XmlComment newComment = createComment(project, s);
CodeStyleManager.getInstance(PsiManager.getInstance(project).getProject()).reformat(comment.replace(newComment));
} else {
addNoinspectionComment(project, anchor);
}
} else {
addNoinspectionComment(project, anchor);
}
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:29,代码来源:SuppressInspectionAction.java
示例8: addNoinspectionComment
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private void addNoinspectionComment(Project project, XmlTag anchor) throws IncorrectOperationException {
final XmlComment newComment = createComment(project, "noinspection " + myToolId);
PsiElement parent = anchor.getParentTag();
if (parent == null) {
parent = PsiTreeUtil.getPrevSiblingOfType(anchor, XmlProlog.class);
if (parent != null) {
CodeStyleManager.getInstance(PsiManager.getInstance(project).getProject()).reformat(parent.add(newComment));
}
} else {
CodeStyleManager.getInstance(PsiManager.getInstance(project).getProject()).reformat(parent.addBefore(newComment, anchor));
}
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:13,代码来源:SuppressInspectionAction.java
示例9: getHandler
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@NotNull
protected CodeInsightActionHandler getHandler(){
return new CodeInsightActionHandler(){
public void invoke(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
final XmlDocument document = findSuitableXmlDocument(file);
if (document != null) {
final @NonNls StringBuffer buffer = new StringBuffer();
buffer.append("<!DOCTYPE " + document.getRootTag().getName() + " [\n");
buffer.append(XmlUtil.generateDocumentDTD(document, true));
buffer.append("]>\n");
XmlFile tempFile;
try{
final XmlProlog prolog = document.getProlog();
final PsiElement childOfType = PsiTreeUtil.getChildOfType(prolog, XmlProcessingInstruction.class);
if (childOfType != null) {
final String text = childOfType.getText();
buffer.insert(0,text);
final PsiElement nextSibling = childOfType.getNextSibling();
if (nextSibling instanceof PsiWhiteSpace) {
buffer.insert(text.length(),nextSibling.getText());
}
}
tempFile = (XmlFile)PsiFileFactory.getInstance(file.getProject()).createFileFromText("dummy.xml", buffer.toString());
prolog.replace(tempFile.getDocument().getProlog());
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
}
}
public boolean startInWriteAction(){
return true;
}
};
}
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:37,代码来源:GenerateDTDAction.java
示例10: invoke
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
final XmlTag anchor = getAnchor(element);
if (anchor == null) return;
PsiElement prevSibling = anchor.getPrevSibling();
while (prevSibling instanceof PsiWhiteSpace || prevSibling instanceof XmlText) {
prevSibling = prevSibling.getPrevSibling();
}
if (prevSibling instanceof XmlProlog) {
prevSibling = prevSibling.getLastChild();
if (prevSibling != null && !(prevSibling instanceof XmlComment)) {
prevSibling = PsiTreeUtil.getPrevSiblingOfType(prevSibling, XmlComment.class);
}
}
if (prevSibling instanceof XmlComment) {
final XmlComment comment = (XmlComment)prevSibling;
final String text = XmlUtil.getCommentText(comment);
if (text != null && InspectionUtil.SUPPRESSION_PATTERN.matcher(text).matches()) {
final String s = text.trim() + ", " + myToolId;
final XmlComment newComment = createComment(project, s);
CodeStyleManager.getInstance(PsiManager.getInstance(project).getProject()).reformat(comment.replace(newComment));
} else {
addNoinspectionComment(project, anchor);
}
} else {
addNoinspectionComment(project, anchor);
}
}
开发者ID:consulo,项目名称:consulo-xslt,代码行数:29,代码来源:SuppressInspectionAction.java
示例11: addNoinspectionComment
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private void addNoinspectionComment(Project project, XmlTag anchor) throws IncorrectOperationException {
final XmlComment newComment = createComment(project, "noinspection " + myToolId);
PsiElement parent = anchor.getParentTag();
if (parent == null) {
parent = PsiTreeUtil.getPrevSiblingOfType(anchor, XmlProlog.class);
if (parent != null) {
CodeStyleManager.getInstance(PsiManager.getInstance(project).getProject()).reformat(parent.add(newComment));
}
} else {
CodeStyleManager.getInstance(PsiManager.getInstance(project).getProject()).reformat(parent.addBefore(newComment, anchor));
}
}
开发者ID:consulo,项目名称:consulo-xslt,代码行数:13,代码来源:SuppressInspectionAction.java
示例12: hasDtdDeclaration
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
private boolean hasDtdDeclaration() {
XmlDocument document = myFile.getDocument();
if (document == null) return false;
XmlProlog prolog = document.getProlog();
if (prolog == null) return false;
XmlDoctype doctype = prolog.getDoctype();
if (doctype == null) return false;
return true;
}
开发者ID:consulo,项目名称:consulo-xml,代码行数:11,代码来源:ValidateXmlActionHandler.java
示例13: hasNonHtml5Doctype
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
public static boolean hasNonHtml5Doctype(XmlElement context)
{
XmlDocument doc = PsiTreeUtil.getParentOfType(context, XmlDocument.class);
if(doc == null)
{
return false;
}
XmlProlog prolog = doc.getProlog();
XmlDoctype doctype = prolog != null ? prolog.getDoctype() : null;
return doctype != null && !isHtml5Doctype(doctype);
}
开发者ID:consulo,项目名称:consulo-xml,代码行数:12,代码来源:HtmlUtil.java
示例14: getRootElementsDescriptors
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@Override
@NotNull
public XmlElementDescriptor[] getRootElementsDescriptors(@Nullable final XmlDocument document)
{
// Suggest more appropriate variant if DOCTYPE <element_name> exists
final XmlProlog prolog = document != null ? document.getProlog() : null;
if(prolog != null)
{
final XmlDoctype doctype = prolog.getDoctype();
if(doctype != null)
{
final XmlElement element = doctype.getNameElement();
if(element != null)
{
final XmlElementDescriptor descriptor = getElementDescriptor(element.getText());
if(descriptor != null)
{
return new XmlElementDescriptor[]{descriptor};
}
}
}
}
return getElements();
}
开发者ID:consulo,项目名称:consulo-xml,代码行数:30,代码来源:XmlNSDescriptorImpl.java
示例15: getChildrenBase
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@NotNull
public Collection<StructureViewTreeElement> getChildrenBase() {
final XmlDocument document = getElement().getDocument();
List<XmlTag> rootTags = new ArrayList<XmlTag>();
if (document != null) {
for (PsiElement element : document.getChildren())
if (element instanceof XmlTag) rootTags.add((XmlTag)element);
}
Collection<StructureViewTreeElement> structureViewTreeElements =
AbstractXmlTagTreeElement.getStructureViewTreeElements(rootTags.toArray(new XmlTag[rootTags.size()]));
Collection<StructureViewTreeElement> dtdStructureViewTreeElements = null;
final XmlProlog prolog = document != null ? document.getProlog():null;
if (prolog != null) {
final XmlDoctype doctype = prolog.getDoctype();
if (doctype != null) {
final XmlMarkupDecl xmlMarkupDecl = doctype.getMarkupDecl();
if (xmlMarkupDecl != null) {
dtdStructureViewTreeElements = DtdFileTreeElement.collectElements(xmlMarkupDecl);
}
}
}
if (dtdStructureViewTreeElements != null) {
final ArrayList<StructureViewTreeElement> result = new ArrayList<StructureViewTreeElement>(
dtdStructureViewTreeElements.size() + structureViewTreeElements.size()
);
result.addAll(dtdStructureViewTreeElements);
result.addAll(structureViewTreeElements);
structureViewTreeElements = result;
}
return structureViewTreeElements;
}
开发者ID:consulo,项目名称:consulo-xml,代码行数:37,代码来源:XmlFileTreeElement.java
示例16: getPreviousSibling
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@Override
protected PsiElement getPreviousSibling(PsiElement element)
{
if(element == null)
{
return null;
}
PsiElement res = element.getPrevSibling();
if(res != null)
{
if(res instanceof XmlProlog)
{
XmlProlog prolog = (XmlProlog) res;
if(prolog.getChildren().length > 0)
{
res = prolog.getLastChild();
}
else
{
res = prolog.getPrevSibling();
}
}
}
else
{
if(element.getParent() instanceof XmlProlog)
{
res = element.getParent().getPrevSibling();
}
}
return res;
}
开发者ID:consulo,项目名称:consulo-xml,代码行数:35,代码来源:UpdateXmlCopyrightsProvider.java
示例17: getNextSibling
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@Override
protected PsiElement getNextSibling(PsiElement element)
{
if(element == null)
{
return null;
}
PsiElement res = element instanceof XmlProlog ? element : element.getNextSibling();
if(res != null)
{
if(res instanceof XmlProlog)
{
XmlProlog prolog = (XmlProlog) res;
if(prolog.getChildren().length > 0)
{
res = prolog.getFirstChild();
}
else
{
res = prolog.getNextSibling();
}
}
}
else
{
if(element.getParent() instanceof XmlProlog)
{
res = element.getParent().getNextSibling();
}
}
return res;
}
开发者ID:consulo,项目名称:consulo-xml,代码行数:35,代码来源:UpdateXmlCopyrightsProvider.java
示例18: getProlog
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@Override
public XmlProlog getProlog() {
return null;
}
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:5,代码来源:RncDocument.java
示例19: getProlog
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
public XmlProlog getProlog() {
return null;
}
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:4,代码来源:RncDocument.java
示例20: processFile
import com.intellij.psi.xml.XmlProlog; //导入依赖的package包/类
@NotNull
@Override
public Runnable processFile(final PsiFile file) {
VirtualFile vFile = file.getVirtualFile();
if (vFile instanceof VirtualFileWindow) vFile = ((VirtualFileWindow)vFile).getDelegate();
final Project project = file.getProject();
if (vFile == null || !ProjectRootManager.getInstance(project).getFileIndex().isInSourceContent(vFile)) {
return EmptyRunnable.INSTANCE;
}
final List<Pair<String, Boolean>> names = new ArrayList<Pair<String, Boolean>>();
collectNamesToImport(names, (XmlFile)file);
Collections.sort(names, new Comparator<Pair<String, Boolean>>() {
@Override
public int compare(Pair<String, Boolean> o1, Pair<String, Boolean> o2) {
return StringUtil.compare(o1.first, o2.first, true);
}
});
final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(project);
final List<Pair<String, Boolean>> sortedNames = ImportHelper.sortItemsAccordingToSettings(names, settings);
final HashSet<String> onDemand = new HashSet<String>();
ImportHelper.collectOnDemandImports(sortedNames, onDemand, settings);
final Set<String> imported = new HashSet<String>();
final List<String> imports = new ArrayList<String>();
for (Pair<String, Boolean> pair : sortedNames) {
final String qName = pair.first;
final String packageName = StringUtil.getPackageName(qName);
if (imported.contains(packageName) || imported.contains(qName)) {
continue;
}
if (onDemand.contains(packageName)) {
imported.add(packageName);
imports.add("<?import " + packageName + ".*?>");
} else {
imported.add(qName);
imports.add("<?import " + qName + "?>");
}
}
final PsiFileFactory factory = PsiFileFactory.getInstance(file.getProject());
final XmlFile dummyFile = (XmlFile)factory.createFileFromText("_Dummy_.fxml", XmlFileType.INSTANCE, StringUtil.join(imports, "\n"));
final XmlDocument document = dummyFile.getDocument();
final XmlProlog newImportList = document.getProlog();
if (newImportList == null) return EmptyRunnable.getInstance();
return new Runnable() {
@Override
public void run() {
final XmlDocument xmlDocument = ((XmlFile)file).getDocument();
final XmlProlog prolog = xmlDocument.getProlog();
if (prolog != null) {
final Collection<XmlProcessingInstruction> instructions = PsiTreeUtil.findChildrenOfType(prolog, XmlProcessingInstruction.class);
for (final XmlProcessingInstruction instruction : instructions) {
final ASTNode node = instruction.getNode();
final ASTNode nameNode = node.findChildByType(XmlTokenType.XML_NAME);
if (nameNode != null && nameNode.getText().equals("import")) {
instruction.delete();
}
}
prolog.add(newImportList);
} else {
document.addBefore(newImportList, document.getRootTag());
}
}
};
}
开发者ID:consulo,项目名称:consulo-javafx,代码行数:65,代码来源:JavaFxImportsOptimizer.java
注:本文中的com.intellij.psi.xml.XmlProlog类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论