mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
JavaDocInfoGenerator creation through factory (to be overridden by Upsource)
This commit is contained in:
@@ -1265,7 +1265,7 @@ public class JavaDocInfoGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
private void generatePrologue(StringBuilder buffer) {
|
||||
protected void generatePrologue(StringBuilder buffer) {
|
||||
URL baseUrl = getBaseUrl();
|
||||
buffer.append("<html><head>");
|
||||
if (baseUrl != null) {
|
||||
@@ -1295,7 +1295,7 @@ public class JavaDocInfoGenerator {
|
||||
}
|
||||
|
||||
@SuppressWarnings({"HardCodedStringLiteral"})
|
||||
private static void generateEpilogue(StringBuilder buffer) {
|
||||
protected void generateEpilogue(StringBuilder buffer) {
|
||||
while (true) {
|
||||
if (buffer.length() < BR_TAG.length()) break;
|
||||
char c = buffer.charAt(buffer.length() - 1);
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.codeInsight.javadoc;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class JavaDocInfoGeneratorFactory {
|
||||
public static JavaDocInfoGeneratorFactory getInstance() {
|
||||
return ServiceManager.getService(JavaDocInfoGeneratorFactory.class);
|
||||
}
|
||||
|
||||
protected JavaDocInfoGenerator createImpl(Project project, PsiElement element) {
|
||||
return new JavaDocInfoGenerator(project, element);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JavaDocInfoGenerator create(Project project, PsiElement element) {
|
||||
return getInstance().createImpl(project, element);
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ package com.intellij.lang.java;
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocExternalFilter;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory;
|
||||
import com.intellij.lang.documentation.AbstractDocumentationProvider;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -28,7 +29,7 @@ public class FileDocumentationProvider extends AbstractDocumentationProvider {
|
||||
|
||||
@Override
|
||||
public String generateDoc(PsiElement element, @Nullable PsiElement originalElement) {
|
||||
final JavaDocInfoGenerator javaDocInfoGenerator = new JavaDocInfoGenerator(element.getProject(), element);
|
||||
final JavaDocInfoGenerator javaDocInfoGenerator = JavaDocInfoGeneratorFactory.create(element.getProject(), element);
|
||||
return JavaDocExternalFilter.filterInternalDocInfo(javaDocInfoGenerator.generateFileInfo());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.intellij.codeInsight.documentation.PlatformDocumentationUtil;
|
||||
import com.intellij.codeInsight.editorActions.CodeDocumentationUtil;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocExternalFilter;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGenerator;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocUtil;
|
||||
import com.intellij.lang.CodeDocumentationAwareCommenter;
|
||||
import com.intellij.lang.LangBundle;
|
||||
@@ -548,7 +549,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement
|
||||
|
||||
@Nullable
|
||||
public static String generateExternalJavadoc(final PsiElement element) {
|
||||
final JavaDocInfoGenerator javaDocInfoGenerator = new JavaDocInfoGenerator(element.getProject(), element);
|
||||
final JavaDocInfoGenerator javaDocInfoGenerator = JavaDocInfoGeneratorFactory.create(element.getProject(), element);
|
||||
final List<String> docURLs = getExternalJavaDocUrl(element);
|
||||
return JavaDocExternalFilter.filterInternalDocInfo(javaDocInfoGenerator.generateDocInfo(docURLs));
|
||||
}
|
||||
|
||||
+3
-4
@@ -239,7 +239,7 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase {
|
||||
}
|
||||
|
||||
private void verifyJavaDoc(final PsiElement field, List<String> docUrls) throws IOException {
|
||||
String docInfo = new JavaDocInfoGenerator(getProject(), field).generateDocInfo(docUrls);
|
||||
String docInfo = JavaDocInfoGeneratorFactory.create(getProject(), field).generateDocInfo(docUrls);
|
||||
assertNotNull(docInfo);
|
||||
assertEquals(exampleHtmlFileText(getTestName(true)), replaceEnvironmentDependentContent(docInfo));
|
||||
}
|
||||
@@ -248,8 +248,7 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase {
|
||||
final String path = JavaTestUtil.getJavaTestDataPath() + "/codeInsight/javadocIG/";
|
||||
final String packageInfo = path + getTestName(true);
|
||||
PsiTestUtil.createTestProjectStructure(myProject, myModule, path, myFilesToDelete);
|
||||
final String info =
|
||||
new JavaDocInfoGenerator(getProject(), JavaPsiFacade.getInstance(getProject()).findPackage(getTestName(true))).generateDocInfo(null);
|
||||
final String info = JavaDocInfoGeneratorFactory.create(getProject(), JavaPsiFacade.getInstance(getProject()).findPackage(getTestName(true))).generateDocInfo(null);
|
||||
String htmlText = FileUtil.loadFile(new File(packageInfo + File.separator + "packageInfo.html"));
|
||||
assertNotNull(info);
|
||||
assertEquals(StringUtil.convertLineSeparators(htmlText.trim()), replaceEnvironmentDependentContent(info));
|
||||
@@ -294,7 +293,7 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase {
|
||||
private void verifyJavadocFor(String className) throws IOException {
|
||||
PsiClass psiClass = JavaPsiFacade.getInstance(myProject).findClass(className, GlobalSearchScope.allScope(myProject));
|
||||
assertNotNull(psiClass);
|
||||
String doc = new JavaDocInfoGenerator(myProject, psiClass).generateDocInfo(null);
|
||||
String doc = JavaDocInfoGeneratorFactory.create(myProject, psiClass).generateDocInfo(null);
|
||||
assertNotNull(doc);
|
||||
PsiDirectory dir = (PsiDirectory)psiClass.getParent().getParent();
|
||||
PsiFile htmlFile = dir.findFile(psiClass.getName() + ".html");
|
||||
|
||||
@@ -553,6 +553,7 @@
|
||||
|
||||
<projectService serviceImplementation="com.intellij.javadoc.JavadocGenerationManager"/>
|
||||
<projectService serviceImplementation="com.intellij.codeInsight.JavaProjectCodeInsightSettings"/>
|
||||
<applicationService serviceImplementation="com.intellij.codeInsight.javadoc.JavaDocInfoGeneratorFactory"/>
|
||||
|
||||
<highlightVisitor implementation="com.intellij.codeInsight.daemon.impl.analysis.HighlightVisitorImpl"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user