Render short type names in quick documentation and navigation

This commit is contained in:
Nikolay Krasko
2014-06-04 21:08:21 +04:00
parent 57fc2c8301
commit 2d72b5afc7
13 changed files with 46 additions and 30 deletions
@@ -16,9 +16,6 @@
package org.jetbrains.jet.editor.quickDoc;
import com.google.common.base.Predicates;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.intellij.codeInsight.documentation.DocumentationManager;
import com.intellij.codeInsight.navigation.CtrlMouseHandler;
import com.intellij.openapi.util.io.FileUtil;
@@ -27,17 +24,13 @@ import com.intellij.psi.PsiElement;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import com.intellij.util.ArrayUtil;
import junit.framework.Assert;
import junit.framework.ComparisonFailure;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.InTextDirectivesUtils;
import org.jetbrains.jet.plugin.ProjectDescriptorWithStdlibSources;
import org.jetbrains.jet.test.util.UtilPackage;
import org.junit.Assert;
import java.io.File;
import java.util.Collection;
import java.util.List;
public abstract class AbstractJetQuickDocProviderTest extends LightCodeInsightFixtureTestCase {
@@ -64,16 +57,18 @@ public abstract class AbstractJetQuickDocProviderTest extends LightCodeInsightFi
testDataFile.getAbsolutePath());
}
else if (directives.size() == 1) {
assertNotNull(info);
String expectedInfo = directives.get(0);
// We can avoid testing for too long comments with \n character by placing '...' in test data
if (info != null && expectedInfo.endsWith("...")) {
if (expectedInfo.endsWith("...")) {
if (!info.startsWith(StringUtil.trimEnd(expectedInfo, "..."))) {
throw new ComparisonFailure(null, expectedInfo, info);
wrapToFileComparisonFailure(info, path, textData);
}
}
else {
Assert.assertEquals(expectedInfo, info);
else if (!expectedInfo.equals(info)) {
wrapToFileComparisonFailure(info, path, textData);
}
}
else {
@@ -81,6 +76,17 @@ public abstract class AbstractJetQuickDocProviderTest extends LightCodeInsightFi
}
}
private static void wrapToFileComparisonFailure(String info, String filePath, String fileData) {
int newLineIndex = info.indexOf('\n');
if (newLineIndex != -1) {
info = info.substring(0, newLineIndex) + "...";
}
String correctedFileText = fileData.replaceFirst("//\\s?INFO: .*", "// INFO: " + info);
throw new FileComparisonFailure("Unexpected info", fileData, correctedFileText, new File(filePath).getAbsolutePath());
}
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {