finish moving JavaDocumentationProvider to java-psi-impl module

This commit is contained in:
Evgeny Pasynkov
2012-11-16 17:09:53 +01:00
parent 258a217358
commit 287debea8f
7 changed files with 66 additions and 26 deletions
@@ -0,0 +1,25 @@
package com.intellij.codeInsight.javadoc;
import com.intellij.openapi.project.Project;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
public class JavaDocCodeStyleImpl extends JavaDocCodeStyle {
private final Project myProject;
public JavaDocCodeStyleImpl(Project project) {
myProject = project;
}
@Override
public boolean spaceBeforeComma() {
CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(myProject);
return styleSettings.SPACE_BEFORE_COMMA;
}
@Override
public boolean spaceAfterComma() {
CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(myProject);
return styleSettings.SPACE_AFTER_COMMA;
}
}
@@ -0,0 +1,13 @@
package com.intellij.codeInsight.javadoc;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
public abstract class JavaDocCodeStyle {
public static JavaDocCodeStyle getInstance(Project project) {
return ServiceManager.getService(project, JavaDocCodeStyle.class);
}
public abstract boolean spaceBeforeComma();
public abstract boolean spaceAfterComma();
}
@@ -24,6 +24,7 @@ import com.intellij.lang.LangBundle;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
@@ -37,14 +38,16 @@ import com.intellij.psi.javadoc.PsiInlineDocTag;
import com.intellij.psi.util.PsiFormatUtil;
import com.intellij.psi.util.PsiFormatUtilBase;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
@@ -518,21 +521,21 @@ public class JavaDocInfoGenerator {
}
private void generatePackageHtmlJavaDoc(final StringBuilder buffer, final PsiFile packageHtmlFile) {
String htmlText;
XmlFile packageXmlFile = (XmlFile) packageHtmlFile;
final XmlTag rootTag = packageXmlFile.getDocument().getRootTag();
if (rootTag != null) {
final XmlTag subTag = rootTag.findFirstSubTag("body");
if (subTag != null) {
htmlText = subTag.getValue().getText();
}
else {
htmlText = packageHtmlFile.getText();
String htmlText = packageHtmlFile.getText();
try {
final Document document = JDOMUtil.loadDocument(new ByteArrayInputStream(htmlText.getBytes()));
final Element rootTag = document.getRootElement();
if (rootTag != null) {
final Element subTag = rootTag.getChild("body");
if (subTag != null) {
htmlText = subTag.getValue();
}
}
}
else {
htmlText = packageHtmlFile.getText();
}
catch (JDOMException ignore) {}
catch (IOException ignore) {}
htmlText = StringUtil.replace(htmlText, "*/", "*/");
final String fileText = "/** " + htmlText + " */";
@@ -19,8 +19,6 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.IncorrectOperationException;
@@ -212,9 +210,8 @@ public class JavaDocUtil {
buffer.append(name);
buffer.append("(");
PsiParameter[] parms = method.getParameterList().getParameters();
CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(project);
boolean spaceBeforeComma = styleSettings.SPACE_BEFORE_COMMA;
boolean spaceAfterComma = styleSettings.SPACE_AFTER_COMMA;
boolean spaceBeforeComma = JavaDocCodeStyle.getInstance(project).spaceBeforeComma();
boolean spaceAfterComma = JavaDocCodeStyle.getInstance(project).spaceAfterComma();
for (int i = 0; i < parms.length; i++) {
PsiParameter parm = parms[i];
String typeText = TypeConversionUtil.erasure(parm.getType()).getCanonicalText();
@@ -319,9 +316,8 @@ public class JavaDocUtil {
if (!StringUtil.endsWithChar(memberText, ')')) return memberText;
String parms = memberText.substring(parenthIndex + 1, memberText.length() - 1);
StringBuffer buffer = new StringBuffer();
CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(project);
boolean spaceBeforeComma = styleSettings.SPACE_BEFORE_COMMA;
boolean spaceAfterComma = styleSettings.SPACE_AFTER_COMMA;
boolean spaceBeforeComma = JavaDocCodeStyle.getInstance(project).spaceBeforeComma();
boolean spaceAfterComma = JavaDocCodeStyle.getInstance(project).spaceAfterComma();
StringTokenizer tokenizer = new StringTokenizer(parms, ",");
while (tokenizer.hasMoreTokens()) {
String param = tokenizer.nextToken().trim();
@@ -69,7 +69,7 @@ public class ExtensionPointQuickDocProvider implements DocumentationProvider {
final Project project = element.getProject();
final PsiClass psiClass = JavaPsiFacade.getInstance(project).findClass(fqn, GlobalSearchScope.allScope(project));
if (psiClass != null) {
return JavaDocumentationProvider.generateExternalJavadoc(psiClass);
return new JavaDocumentationProvider().generateExternalJavadoc(psiClass);
}
}
@@ -305,7 +305,7 @@ public class GroovyDocumentationProvider implements CodeDocumentationProvider, E
if (docElement != null) {
ContainerUtil.addIfNotNull(result, docElement.getUserData(NonCodeMembersHolder.DOCUMENTATION_URL));
}
List<String> list = JavaDocumentationProvider.getExternalJavaDocUrl(element);
List<String> list = new JavaDocumentationProvider().getExternalJavaDocUrl(element);
if (list != null) {
result.addAll(list);
}
@@ -335,7 +335,7 @@ public class GroovyDocumentationProvider implements CodeDocumentationProvider, E
if (element == null) return null;
String standard = JavaDocumentationProvider.generateExternalJavadoc(element);
String standard = new JavaDocumentationProvider().generateExternalJavadoc(element);
if (element instanceof GrVariable &&
((GrVariable)element).getTypeElementGroovy() == null &&
+3
View File
@@ -314,6 +314,9 @@
<projectService serviceInterface="com.intellij.psi.JavaCodeFragmentFactory"
serviceImplementation="com.intellij.psi.impl.JavaCodeFragmentFactoryImpl"/>
<projectService serviceInterface="com.intellij.codeInsight.javadoc.JavaDocCodeStyle"
serviceImplementation="com.intellij.codeInsight.javadoc.JavaDocCodeStyleImpl"/>
<applicationService serviceInterface="com.intellij.psi.JavaDirectoryService"
serviceImplementation="com.intellij.psi.impl.file.JavaDirectoryServiceImpl"/>