Есть ли в Eclipse способ сортировки строк по тексту по алфавиту? - PullRequest
36 голосов
/ 03 сентября 2010

Аналогично сортировочным линиям Emacs 'M-x

Ответы [ 7 ]

38 голосов
/ 14 июля 2011

Да, это так!Существует очень простой плагин под названием SortIt , который делает именно то, что вы хотите.Он добавляет в меню «Правка» раздел, с помощью которого можно выполнить следующие действия:

  • с учетом регистра
  • без учета регистра
  • обратный текст
  • Числовая сортировка
  • Длина сортировки

Плагин не зависит от исходного кода и обрабатывает все, что вы сортируете, как обычный текст.Я нахожу это особенно полезным при сортировке .properties файлов и сеттеров / геттеров.Например, используя сортировку с учетом регистра, я отсортировал следующий код:

msgHeader.setTotalGrossMass(content.getTotalGrossMass());
msgHeader.setReferenceNumber(content.getReferenceNumber());
msgHeader.setTransportModeAtBorder(content.getTransportModeAtBorder());
msgHeader.setCountryOfDestinationCode(content.getCountryOfDestinationCode());
msgHeader.setCountryOfDispatchExportCode(content.getCountryOfDispatch());
msgHeader.setDateOfAmendment(content.getDeclarationDate());                     // TODO: correct?
msgHeader.setIdentityOfMeansOfTransportCrossingBorder(content.getIdentityMeansOfTransportCrossingBorder());
msgHeader.setManualEntryNumber(content.getManualEntryNumber());
msgHeader.setTotalNumberOfPackages(content.getTotalNumberOfPackages());
msgHeader.setAgreedLocationOfGoodsCode(content.getAgreedLocationCode());
msgHeader.setAgreedLocationOfGoodsLNG(content.getAgreedLoclOfGoodsLNG());
msgHeader.setManualEntryYear(content.getManualEntryYear());
msgHeader.setAgreedLocationOfGoods(content.getAgreedLocationCode());
msgHeader.setMethodOfPayment(content.getMethodOfPayment());
msgHeader.setNationalityOfMeansOfTransportCrossingBorder(content.getNationalityMeansOfTransportCrossingBorder());
msgHeader.setAmendmentPlace(content.getDeclarationPlace());                     // TODO: correct?
msgHeader.setAmendmentPlaceLNG(content.getDeclarationPlaceLNG());               // TODO: correct?
msgHeader.setTotalNumberOfItems(content.getTotalNumberOfItems());
msgHeader.setAcceptanceDate(content.getAcceptanceDate());

... по этому:

msgHeader.setAcceptanceDate(content.getAcceptanceDate());
msgHeader.setAgreedLocationOfGoods(content.getAgreedLocationCode());
msgHeader.setAgreedLocationOfGoodsCode(content.getAgreedLocationCode());
msgHeader.setAgreedLocationOfGoodsLNG(content.getAgreedLoclOfGoodsLNG());
msgHeader.setAmendmentPlace(content.getDeclarationPlace());                     // TODO: correct?
msgHeader.setAmendmentPlaceLNG(content.getDeclarationPlaceLNG());               // TODO: correct?
msgHeader.setCountryOfDestinationCode(content.getCountryOfDestinationCode());
msgHeader.setCountryOfDispatchExportCode(content.getCountryOfDispatch());
msgHeader.setDateOfAmendment(content.getDeclarationDate());                     // TODO: correct?
msgHeader.setIdentityOfMeansOfTransportCrossingBorder(content.getIdentityMeansOfTransportCrossingBorder());
msgHeader.setManualEntryNumber(content.getManualEntryNumber());
msgHeader.setManualEntryYear(content.getManualEntryYear());
msgHeader.setMethodOfPayment(content.getMethodOfPayment());
msgHeader.setNationalityOfMeansOfTransportCrossingBorder(content.getNationalityMeansOfTransportCrossingBorder());
msgHeader.setReferenceNumber(content.getReferenceNumber());
msgHeader.setTotalGrossMass(content.getTotalGrossMass());
msgHeader.setTotalNumberOfItems(content.getTotalNumberOfItems());
msgHeader.setTotalNumberOfPackages(content.getTotalNumberOfPackages());
msgHeader.setTransportModeAtBorder(content.getTransportModeAtBorder());
12 голосов
/ 15 февраля 2013

ужасно уродливый сайт, но AnyEdit выполняет сортировку:

  • с учетом регистра
  • без учета регистра
  • числовой
  • Назад
  • вперед
4 голосов
/ 03 сентября 2010

Попробуйте этот плагин для Eclipse:

http://marketplace.eclipse.org/content/emacs

Если вышеупомянутый не выполняет работу, попробуйте один из следующих:

http://marketplace.eclipse.org/search/apachesolr_search/emacs

2 голосов
/ 08 февраля 2016

В Eclipse Kepler SR2 я вижу опцию под Source > Sort Members.. Это работает.

У меня также есть AnyEdit .

2 голосов
/ 24 февраля 2015

С помощью luna вы можете сделать это с помощью «Source» -> «Organize Imports»

Это работает для всех типов линий, а не только для импорта.

2 голосов
/ 12 марта 2014

Попробуйте CTRL + ALT + S .У меня работает с Kepler.

Если это не сработает, зайдите в Help-> Key Assist ... и найдите «Sort Lines»

EDIT: похоже, работает только в C/ C ++ Editor и поэтому, вероятно, поставляется с CDT

0 голосов
/ 17 сентября 2017

Если вы работаете в Linux, просто используйте «cat file | sort». Под Windows, как программист, вы, вероятно, должны в любом случае установить Cygwin.

...