Merge remote-tracking branch 'origin/master'

This commit is contained in:
Dmitry Batkovich
2016-05-19 11:55:44 +03:00
25 changed files with 47 additions and 47 deletions
@@ -333,7 +333,7 @@ public class MarkerType {
return null;
}
Comparator<PsiClass> comparator = new PsiClassListCellRenderer().getComparator();
Comparator<PsiClass> comparator = PsiClassListCellRenderer.INSTANCE.getComparator();
Arrays.sort(subclasses, comparator);
String start = aClass.isInterface()
@@ -120,7 +120,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction {
final Project project = firstClass.getProject();
final JList list = new JBList(classes);
PsiElementListCellRenderer renderer = new PsiClassListCellRenderer();
PsiElementListCellRenderer renderer = PsiClassListCellRenderer.INSTANCE;
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setCellRenderer(renderer);
final PopupChooserBuilder builder = new PopupChooserBuilder(list);
@@ -103,7 +103,7 @@ public class CreateInnerClassFromUsageFix extends CreateClassFromUsageBaseFix {
final Project project = classes[0].getProject();
final JList list = new JBList(classes);
PsiElementListCellRenderer renderer = new PsiClassListCellRenderer();
PsiElementListCellRenderer renderer = PsiClassListCellRenderer.INSTANCE;
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setCellRenderer(renderer);
final PopupChooserBuilder builder = new PopupChooserBuilder(list);
@@ -99,7 +99,7 @@ public class PullAsAbstractUpFix extends LocalQuickFixAndIntentionActionOnPsiEle
pullUp(method, containingClass, classesToPullUp.iterator().next());
}
else if (editor != null) {
NavigationUtil.getPsiElementPopup(classesToPullUp.toArray(new PsiClass[classesToPullUp.size()]), new PsiClassListCellRenderer(),
NavigationUtil.getPsiElementPopup(classesToPullUp.toArray(new PsiClass[classesToPullUp.size()]), PsiClassListCellRenderer.INSTANCE,
"Choose super class",
new PsiElementProcessor<PsiClass>() {
@Override
@@ -44,6 +44,6 @@ public abstract class ChooseClassAndDoHighlightRunnable extends ChooseOneOrAllRu
@Override
protected PsiElementListCellRenderer<PsiClass> createRenderer() {
return new PsiClassListCellRenderer();
return PsiClassListCellRenderer.INSTANCE;
}
}
@@ -28,7 +28,6 @@ import com.intellij.psi.*;
import com.intellij.psi.impl.FindSuperElementsHelper;
import com.intellij.psi.presentation.java.SymbolPresentationUtil;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.Consumer;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
@@ -63,7 +62,7 @@ public class ShowSiblingsAction extends ShowImplementationsAction {
final boolean isMethod = superElements[0] instanceof PsiMethod;
NavigatablePsiElement[] navigatablePsiElements = ContainerUtil.findAllAsArray(superElements, NavigatablePsiElement.class);
final JBPopup popup = PsiElementListNavigator.navigateOrCreatePopup(navigatablePsiElements, "Choose super " + (isMethod ? "method" : "class or interface"), "Super " + (isMethod ? "methods" : "classes/interfaces"),
isMethod ? new MethodCellRenderer(false) : new PsiClassListCellRenderer(), null,
isMethod ? new MethodCellRenderer(false) : PsiClassListCellRenderer.INSTANCE, null,
objects -> showSiblings(invokedByShortcut, project, editor, file, editor != null, (PsiElement)objects[0]));
if (popup != null) {
if (editor != null) {
@@ -178,14 +178,9 @@ public class ImplementAbstractMethodHandler {
}
private static class MyPsiElementListCellRenderer extends PsiElementListCellRenderer<PsiElement> {
private final PsiClassListCellRenderer myRenderer;
public MyPsiElementListCellRenderer() {
myRenderer = new PsiClassListCellRenderer();
}
void sort(PsiElement[] result) {
final Comparator<PsiClass> comparator = myRenderer.getComparator();
final Comparator<PsiClass> comparator = PsiClassListCellRenderer.INSTANCE.getComparator();
Arrays.sort(result, (o1, o2) -> {
if (o1 instanceof PsiEnumConstant && o2 instanceof PsiEnumConstant) {
return ((PsiEnumConstant)o1).getName().compareTo(((PsiEnumConstant)o2).getName());
@@ -198,7 +193,7 @@ public class ImplementAbstractMethodHandler {
@Override
public String getElementText(PsiElement element) {
return element instanceof PsiClass ? myRenderer.getElementText((PsiClass)element)
return element instanceof PsiClass ? PsiClassListCellRenderer.INSTANCE.getElementText((PsiClass)element)
: ((PsiEnumConstant)element).getName();
}
@@ -33,7 +33,7 @@ public class JavaGotoTargetRendererProvider implements GotoTargetRendererProvide
return new MethodCellRenderer(gotoData.hasDifferentNames());
}
else if (element instanceof PsiClass) {
return new PsiClassListCellRenderer();
return PsiClassListCellRenderer.INSTANCE;
}
return null;
}
@@ -23,7 +23,6 @@ import javax.swing.*;
public class MethodCellRenderer extends PsiElementListCellRenderer<PsiMethod>{
private final boolean myShowMethodNames;
private final PsiClassListCellRenderer myClassListCellRenderer = new PsiClassListCellRenderer();
@PsiFormatUtil.FormatMethodOptions
private final int myOptions;
@@ -37,7 +36,7 @@ public class MethodCellRenderer extends PsiElementListCellRenderer<PsiMethod>{
public String getElementText(PsiMethod element) {
final PsiNamedElement container = fetchContainer(element);
String text = container instanceof PsiClass ? myClassListCellRenderer.getElementText((PsiClass)container) : container.getName();
String text = container instanceof PsiClass ? PsiClassListCellRenderer.INSTANCE.getElementText((PsiClass)container) : container.getName();
if (myShowMethodNames) {
text += "."+PsiFormatUtil.formatMethod(element, PsiSubstitutor.EMPTY, myOptions, PsiFormatUtilBase.SHOW_TYPE);
}
@@ -58,6 +57,6 @@ public class MethodCellRenderer extends PsiElementListCellRenderer<PsiMethod>{
}
public int getIconFlags() {
return myClassListCellRenderer.getIconFlags();
return PsiClassListCellRenderer.INSTANCE.getIconFlags();
}
}
@@ -23,7 +23,7 @@ import com.intellij.psi.util.PsiFormatUtilBase;
import javax.swing.*;
public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCellRenderer<NavigatablePsiElement> {
private final PsiClassListCellRenderer myClassListCellRenderer = new PsiClassListCellRenderer();
private final PsiClassListCellRenderer myClassListCellRenderer = PsiClassListCellRenderer.INSTANCE;
private final MethodCellRenderer myMethodCellRenderer;
public MethodOrFunctionalExpressionCellRenderer(boolean showMethodNames) {
@@ -48,6 +48,6 @@ public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCell
}
public int getIconFlags() {
return myClassListCellRenderer.getIconFlags();
return PsiClassListCellRenderer.INSTANCE.getIconFlags();
}
}
@@ -20,6 +20,8 @@ import com.intellij.psi.presentation.java.ClassPresentationUtil;
import org.jetbrains.annotations.Nullable;
public class PsiClassListCellRenderer extends PsiElementListCellRenderer<PsiClass> {
public static final PsiClassListCellRenderer INSTANCE = new PsiClassListCellRenderer();
@Override
public String getElementText(PsiClass element) {
return ClassPresentationUtil.getNameForClass(element, false);
@@ -1519,7 +1519,7 @@ public class ExtractMethodProcessor implements MatchProvider {
if (classes.size() > 1) {
final PsiClass[] psiClasses = classes.keySet().toArray(new PsiClass[classes.size()]);
final PsiClass preselection = AnonymousTargetClassPreselectionUtil.getPreselection(classes.keySet(), psiClasses[0]);
NavigationUtil.getPsiElementPopup(psiClasses, new PsiClassListCellRenderer(), "Choose Destination Class", processor, preselection)
NavigationUtil.getPsiElementPopup(psiClasses, PsiClassListCellRenderer.INSTANCE, "Choose Destination Class", processor, preselection)
.showInBestPositionFor(myEditor);
return true;
}
@@ -134,7 +134,7 @@ public abstract class BaseExpressionToFieldHandler extends IntroduceHandlerBase
}
else {
PsiClass selection = AnonymousTargetClassPreselectionUtil.getPreselection(classes, myParentClass);
NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), new PsiClassListCellRenderer(),
NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), PsiClassListCellRenderer.INSTANCE,
"Choose class to introduce " + (myIsConstant ? "constant" : "field"),
new PsiElementProcessor<PsiClass>() {
@Override
@@ -94,7 +94,7 @@ public abstract class LocalToFieldHandler {
final boolean isStatic = tempIsStatic;
final PsiClass firstClass = classes.get(0);
final PsiClass preselection = AnonymousTargetClassPreselectionUtil.getPreselection(classes, firstClass);
NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), new PsiClassListCellRenderer(), "Choose class to introduce " + (myIsConstant ? "constant" : "field"), new PsiElementProcessor<PsiClass>() {
NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), PsiClassListCellRenderer.INSTANCE, "Choose class to introduce " + (myIsConstant ? "constant" : "field"), new PsiElementProcessor<PsiClass>() {
@Override
public boolean execute(@NotNull PsiClass aClass) {
AnonymousTargetClassPreselectionUtil.rememberSelection(aClass, aClass);
@@ -580,7 +580,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase {
final PsiType returnType = emptyMethod.getReturnType();
LOG.assertTrue(returnType != null);
final String title = "Choose Applicable Functional Interface: " + methodSignature + " -> " + returnType.getPresentableText();
NavigationUtil.getPsiElementPopup(psiClasses, new PsiClassListCellRenderer(), title,
NavigationUtil.getPsiElementPopup(psiClasses, PsiClassListCellRenderer.INSTANCE, title,
new PsiElementProcessor<PsiClass>() {
@Override
public boolean execute(@NotNull PsiClass psiClass) {
@@ -85,7 +85,7 @@ public class GenerateMissedTestsAction extends PsiElementBaseIntentionAction {
}
final JBList list = new JBList(testClasses);
list.setCellRenderer(new PsiClassListCellRenderer());
list.setCellRenderer(PsiClassListCellRenderer.INSTANCE);
JBPopupFactory.getInstance().createListPopupBuilder(list)
.setItemChoosenCallback(() -> generateMissedTests((PsiClass)list.getSelectedValue(), srcClass, editor))
.setTitle("Choose Test")
@@ -273,7 +273,7 @@ public class ClsClassImpl extends ClsMemberImpl<PsiClassStub<?>> implements PsiE
@Override
public boolean isDeprecated() {
return getStub().isDeprecated();
return getStub().isDeprecated() || PsiImplUtil.isDeprecatedByAnnotation(this);
}
public String getSourceFileName() {
@@ -143,7 +143,7 @@ public class ClsFieldImpl extends ClsMemberImpl<PsiFieldStub> implements PsiFiel
@Override
public boolean isDeprecated() {
return getStub().isDeprecated();
return getStub().isDeprecated() || PsiImplUtil.isDeprecatedByAnnotation(this);
}
@Override
@@ -292,12 +292,13 @@ public class PerformanceWatcher implements ApplicationComponent {
}
private static void checkMemoryUsage(File file) {
final Runtime rt = Runtime.getRuntime();
final long allocatedMem = rt.maxMemory();
final long unusedMem = rt.freeMemory();
if (unusedMem < allocatedMem / 5) {
LOG.info("High memory usage (free " + unusedMem / 1024 / 1024 +
" of " + allocatedMem / 1024 / 1024 +
Runtime rt = Runtime.getRuntime();
long maxMemory = rt.maxMemory();
long usedMemory = rt.totalMemory() - rt.freeMemory();
long freeMemory = maxMemory - usedMemory;
if (freeMemory < maxMemory / 5) {
LOG.info("High memory usage (free " + freeMemory / 1024 / 1024 +
" of " + maxMemory / 1024 / 1024 +
" MB) while dumping threads to " + file);
}
}
@@ -465,7 +465,9 @@ public class FileManagerImpl implements FileManager {
}
else {
FileViewProvider viewProvider = myVFileToViewProviderMap.remove(file);
markInvalidated(viewProvider);
if (viewProvider != null) {
markInvalidated(viewProvider);
}
}
return true;
}
@@ -476,7 +478,7 @@ public class FileManagerImpl implements FileManager {
}
}
private void markInvalidated(FileViewProvider viewProvider) {
private void markInvalidated(@NotNull FileViewProvider viewProvider) {
if (viewProvider instanceof SingleRootFileViewProvider) {
((SingleRootFileViewProvider)viewProvider).markInvalidated();
}
@@ -163,7 +163,7 @@ public class PluginXmlDomInspection extends BasicDomElementsInspection<IdeaPlugi
int branch = Integer.parseInt(untilBuild);
String corrected = (branch - 1) + ".*";
String message = "Plain numbers in 'until-build' attribute may be misleading. '" + untilBuild + "' means the same as '" + untilBuild
+ ".0', so the plugin won't be compatible with " + untilBuild + ".* builds. It's better to specify '" + corrected + " instead.";
+ ".0', so the plugin won't be compatible with " + untilBuild + ".* builds. It's better to specify '" + corrected + "' instead.";
holder.createProblem(ideaVersion.getUntilBuild(), message, new CorrectUntilBuildAttributeFix(corrected));
}
}
@@ -1,4 +1,4 @@
<idea-plugin>
<id>test</id>
<idea-version since-build="145" until-build="<error descr="Plain numbers in 'until-build' attribute may be misleading. '145' means the same as '145.0', so the plugin won't be compatible with 145.* builds. It's better to specify '144.* instead.">145</error>"/>
<idea-version since-build="145" until-build="<error descr="Plain numbers in 'until-build' attribute may be misleading. '145' means the same as '145.0', so the plugin won't be compatible with 145.* builds. It's better to specify '144.*' instead.">145</error>"/>
</idea-plugin>
@@ -102,7 +102,7 @@ public abstract class GrCreateFromUsageBaseFix extends Intention {
final Project project = classes.get(0).getProject();
final JList list = new JBList(classes);
PsiElementListCellRenderer renderer = new PsiClassListCellRenderer();
PsiElementListCellRenderer renderer = PsiClassListCellRenderer.INSTANCE;
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setCellRenderer(renderer);
final PopupChooserBuilder builder = new PopupChooserBuilder(list);
@@ -67,7 +67,7 @@ public abstract class GrIntroduceFieldHandlerBase<Settings extends GrIntroduceSe
}
};
NavigationUtil.getPsiElementPopup(scopes, new PsiClassListCellRenderer(), "Choose class to introduce field", processor).showInBestPositionFor(editor);
NavigationUtil.getPsiElementPopup(scopes, PsiClassListCellRenderer.INSTANCE, "Choose class to introduce field", processor).showInBestPositionFor(editor);
}
@NotNull
@@ -37,12 +37,16 @@ public class RepositoryAddLibraryAction extends IntentionAndQuickFixAction {
@Override
public void applyFix(@NotNull Project project, PsiFile file, @Nullable Editor editor) {
addLibraryToModule(libraryDescription, module);
}
public static void addLibraryToModule(RepositoryLibraryDescription libraryDescription, Module module) {
RepositoryLibraryPropertiesModel model = new RepositoryLibraryPropertiesModel(
RepositoryUtils.DefaultVersionId,
false,
false);
RepositoryLibraryPropertiesDialog dialog = new RepositoryLibraryPropertiesDialog(
project,
module.getProject(),
model,
libraryDescription,
false);
@@ -51,14 +55,12 @@ public class RepositoryAddLibraryAction extends IntentionAndQuickFixAction {
}
IdeaModifiableModelsProvider modifiableModelsProvider = new IdeaModifiableModelsProvider();
final ModifiableRootModel modifiableModel = modifiableModelsProvider.getModuleModifiableModel(module);
RepositoryLibrarySupport librarySupport = new RepositoryLibrarySupport(project, libraryDescription, model);
RepositoryLibrarySupport librarySupport = new RepositoryLibrarySupport(module.getProject(), libraryDescription, model);
assert modifiableModel != null;
librarySupport.addSupport(
module,
modifiableModel,
modifiableModelsProvider);
ApplicationManager.getApplication().runWriteAction(() -> {
modifiableModel.commit();
});
module,
modifiableModel,
modifiableModelsProvider);
ApplicationManager.getApplication().runWriteAction(modifiableModel::commit);
}
}