mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
finish moving JavaDocumentationProvider to java-psi-impl module
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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 &&
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user