|
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