|
44 | 44 | import gnu.trove.THashSet;
|
45 | 45 | import java.util.ArrayList;
|
46 | 46 | import java.util.Collection;
|
47 |
| -import java.util.Collections; |
48 | 47 | import java.util.Iterator;
|
49 | 48 | import java.util.List;
|
50 | 49 | import java.util.Locale;
|
@@ -318,18 +317,27 @@ public static Collection<PhpNamedElementNode> fixOrderToBeAsOriginalFiles(
|
318 | 317 | final PhpNamedElementNode... selected
|
319 | 318 | ) {
|
320 | 319 | final List<PhpNamedElementNode> newSelected = ContainerUtil.newArrayList(selected);
|
321 |
| - Collections.sort(newSelected, (o1, o2) -> { |
| 320 | + newSelected.sort((o1, o2) -> { |
322 | 321 | final PsiElement psiElement = o1.getPsiElement();
|
323 | 322 | final PsiElement psiElement2 = o2.getPsiElement();
|
324 | 323 | final PsiFile containingFile = psiElement.getContainingFile();
|
325 | 324 | final PsiFile containingFile2 = psiElement2.getContainingFile();
|
326 | 325 | return containingFile.equals(containingFile2)
|
327 |
| - ? psiElement.getTextOffset() - psiElement2.getTextOffset() |
328 |
| - : containingFile.getName().compareTo(containingFile2.getName()); |
| 326 | + ? psiElement.getTextOffset() - psiElement2.getTextOffset() |
| 327 | + : getDocumentPosition(containingFile, containingFile2); |
329 | 328 | });
|
330 | 329 | return newSelected;
|
331 | 330 | }
|
332 | 331 |
|
| 332 | + private static int getDocumentPosition( |
| 333 | + final PsiFile containingFile, |
| 334 | + final PsiFile containingFile2 |
| 335 | + ) { |
| 336 | + return containingFile.getVirtualFile().getPresentableUrl().compareTo( |
| 337 | + containingFile2.getVirtualFile().getPresentableUrl() |
| 338 | + ); |
| 339 | + } |
| 340 | + |
333 | 341 | private static int getSuitableEditorPosition(final Editor editor, final PhpFile phpFile) {
|
334 | 342 | final PsiElement currElement = phpFile.findElementAt(editor.getCaretModel().getOffset());
|
335 | 343 | if (currElement != null) {
|
@@ -371,9 +379,9 @@ private static boolean isClassMember(final PsiElement element) {
|
371 | 379 | return false;
|
372 | 380 | }
|
373 | 381 | final IElementType elementType = element.getNode().getElementType();
|
374 |
| - return elementType == PhpElementTypes.CLASS_FIELDS |
375 |
| - || elementType == PhpElementTypes.CLASS_CONSTANTS |
376 |
| - || elementType == PhpStubElementTypes.CLASS_METHOD; |
| 382 | + return elementType.equals(PhpElementTypes.CLASS_FIELDS) |
| 383 | + || elementType.equals(PhpElementTypes.CLASS_CONSTANTS) |
| 384 | + || elementType.equals(PhpStubElementTypes.CLASS_METHOD); |
377 | 385 | }
|
378 | 386 |
|
379 | 387 | private static int getNextPos(final PsiElement element) {
|
|
0 commit comments