вторник, 19 мая 2009 г.

Давайте посмотрим, что нового будет в Eclipse 3.5


Буквально вчера вышел 1-й релиз-кандидат замечательной IDE для Java-разработчиков и не только - Eclipse 3.5 Galileo RC1. Модель разработки Eclipse строится следующим образом: раз в 2-3 месяца выходит так называемый milestone-билд (отмечаемый буквой M), в котором реализовывается и отлаживается часть предполагаемого функционала. В случае Eclipse 3.5, начиная с билда M6 фиксируется API, начиная с билда M7 - фичи, а далее идет серия релиз-кандидатов для бета-тестирования.

Сразу хочу сказать, что изменений в Galileo очень много. Эти изменения касаются различных частей платформы и имеют разную значимость для пользователей. Я постарался сгруппировать и отсортировать список так, чтобы им было удобно пользоваться.

Итак, что же нам готовит Eclipse 3.5?



Поддержка новых архитектур


1. Поддержка Solaris x86
OpenSolaris x86 - теперь официально поддерживаемая платформа. Т.е. для нее будет разрабатываться своя ветка SWT и будут собираться официальные билды.
Solaris x86

2. Поддержка 32-х и 64-х битных Mac Cocoa
Макофилам посвящается. Теперь Eclipse поддерживает и Mac Cocoa, что включает в себя нативную поддержку системы со стороны SWT, лук-энд-филы для данной платформы и т.д.
SWT for 32-bit Cocoa

Данная ветка активно разрабатывается, поэтому в ней могут быть баги. Но, я думаю, к релизу их исправят.

Общесистемные изменения


1. Возможность сравнения Word-документов непосредственно в Eclipse
Ребята написали плагин, который позволяет сравнивать содержимое Word-документов прямо в Eclipse. Очень удобно использовать совместно с системами контроля версий. Так же документы можно править не выходя из Eclipse. Интересно, что плагин совместим с Eclipse 3.3 и Eclpse 3.4. А вот здесь можно почитать подробности.
Compare Word Documents

2. Возможность легкого обновления плагинов
В меню Help добавлены новые элементы, позволяющие управлять установленными плагинами. Например, теперь можно проверить обновления плагинов двумя кликами: Help > Check for Updates.
Software updates menu items

3. Установка новых плагинов
Страница Available Software перенесена в визард , который доступен по адресу: Help > Install New Software... Теперь навигация по фичам, фильтрация по сайтам, категориям и именам плагинов доступны с первой страницы визарда. Добавлено поле с описанием отмеченного плагина. Так же добавлено поле, для отображения информации по установленным и обновленным плагином. Это все, конечно, очень удобно.


4. Изменение в отображении информации об уже установленных плагинах
Страница Installed Software перемещена в отдельный диалог, который можно вызвать так: Help > About Eclipse SDK > Installation Details. Так же, теперь можно разворачивать элементы верхнего уровня, для того, чтобы посмотреть зависимости. Добавлено поле с описанием отмеченного плагина.


5. История инсталяций
В окно Installation Details добавлена вкладка Installation History на которой отображается история изменений состояния плагинной системы. Теперь всегда можно откатиться к предыдущему состоянию, если что-то пошло не так.
Installation history

6. Расширены возможности редактора сравнения файлов
Добавлены новые возможности к редактору сравнения файлов. Теперь можно вызывать диалог "Перейти к строке". Так же текущее выделенное значение автоматически служит фильтром в диалогах Open Type и Open Resource.
Compare Editor enhancements

Теперь поддерживается переключение кодировки непосредственно из редактора сравнения.
Set encoding in Compare Editor

Также добавлена возможность выбирать тип редактора сравнения, например переключаться между Java Source Compare в Text Compare и наоборот.
Compare Editor enhancemen

7. Выделение произвольного блока текста
StyledText теперь может быть переключен в режим выделения произвольного блока текста. Используется новое API: StyledText.setBlockSelection(true).
Block selection in StyledText
Активируется данная функция нажатием Alt+Shift+A или кнопочкой на тулбаре.

8. Отображение конкретного активного контекста отладки
Отладчик теперь может отображать только один активный контекст отладки. Включается данная функция автоматически, при ресайзе окна отладчика. Так же добавлено выпадающее меню, позволяющее выбрать активный контекст.
Debug view breadcrumb
Debug view breadcrumb

9. Быстрое переключение между потоками в отладчике
В отладчике появилась возможность быстрого переключения между отлаживаемыми потоками. Для этого служат действия Navigate > Next и Navigate > Previous, на которые можно назначить клавиатурные комбинации.

10. Улучшено отображение фильтруемых деревьев
При отображении деревьев иногда присутствует поле ввода для фильтра. Теперь это поле снабжено кнопкой очистки. При нажатии на нее фильтр очищается.
Improved look for filtered tree

11. Поддержка нескольких шрифтов в одной ячейке
Теперь в одной ячейке можно отображать информацию разными шрифтами.
Multiple fonts in one cell

Это очень юзабельно, при отображении результатов поиска в диалогах выбора класса или ресурса.
Emphasized matching characters in Open Type dialog

12. Go To и Go Into в Project Explorer'е
Теперь можно перейти в любой каталог (в случае JDT - package) и сделать так, что в Package Explorer будет отображаться содержимое только этого каталога. Удобно, когда у вас с воркспейсе 20 проектов, но в данный момент вы работаете только с одним.
Project Explorer improvements

13. Индивидуально-настраиваемые меню и тулбары
Расширен и улучшен диалог кастомизации перспектив. Теперь можно скрывать или показывать индивидуальные для пользователя пункты меню и элементы тулбаров.
Customize menus and toolbars

14. Двойной клик по линии фолдинга
Теперь при двойном клике на линию фолдинга сворачивается/разворачивается блок текста.
Double-click on folding line collapses the folding region

15. Новый вид окна приветствия
Добавлена новая тема для окна приветствия, под названием Slate. Данная тема не является используемой по умолчанию, но ее можно выбрать в списке поддерживаемых тем.
Выглядит тема вот так:
New intro theme
И так:
New intro theme

16. Переключение редакторов и страниц в многостраничных редакторах
Новые клавиатурные комбинации для переключения редакторов: Ctrl+PageDown и Ctrl+PageUp. Для переключения страниц внутри многостраничного редактора можно использовать Alt+PageDown и Alt+PageUp.
Switch editors and multi-page editors

17. Пропуск очистки локальной истории при выходе из Eclipse
Если у вас большая локальная история изменений, то время ожидания ее очистки Eclipse'ом может затянуться. Но теперь можно нажать Cancel, тем самым пропустив процесс очистки истории.
Skip history cleanup on shutdown

18. Диалог Open Resource поддерживает выбор редактора
Теперь можно открыть искомый ресурс в нужном вам редакторе сразу же из окна поиска. Для этого достаточно вызвать контекстное меню объекта и выбрать пункт Open With.
Open Resource dialog allows choice of editor

19. Пользователь может задавать свои имена для update-сайтов
Теперь пользователь может задавать свои имена для update-сайтов. Данные имена будут отображаться в списке выбора update-сайта. Можно явно указать, что tigris - это subclipse и больше никогда об этом не забывать.
User-named software sites

20. Автодополнение в поле выбора update-сайта
Теперь в поле выбора update-сайта работает автодополнение, т.е. если вы вводите какую-либо строку, то в выпадающем меню будут отображаться только те сайты, которые ее содержат.
Install New Software auto-complete support

21. Возможность работы с несколькими экземплярами редактора свойств
Редактор свойств (вид Properties) позволяет теперь отображать несколько своих экземпляров. Т.е. теперь из существующего экземпляра можно вызывать другие, которые будут отображать только выбранную группу свойств. Удобно, например, при разработке BPEL, когда часто нужно менять свойства элементов.
Multi-instance Properties view

22. Диалог управления воркспейсами
В настройки добавлен диалог управления воркспейсами. Теперь можно удалять/добавлять воркспейсы, которые будут отображаться для выбора при старте Eclipse. Так же можно изменять количество таких воркспейсов (по умолчанию - 5). Диалог доступен из General > Startup and Shutdown > Workspaces.
Workspaces preference page

23. Быстрый поиск в Help-топиках
Теперь можно делать поиск справочной информации в конкретной книге или топике.
Help quick search

24. Настраиваемые иконки в справочной системе
Теперь для отображения тем, каталогов тем и страниц справки можно задавать свои иконки. Для этого используется элемент tocIcon в точке расширения org.eclipse.help.toc.
Custom icons in help system

Java Development Tools (JDT)


1. Редактор сравнения Java-файлов по возможностям приближен к редактору самих Java-файлов
Редактор, обеспечивающий сравнение Java-элементов оброс новыми функциями и по возможностям вплотную приблизился к редактору Java-кода.

Автодополнение кода:
Java compare enhancements

Гиперссылки:
Java compare enhancements

Всплывающие окошки с JavaDoc:
Java compare enhancements

Quick Outline:
Java compare enhancements

Более того, теперь можно набирать код прямо в этом окне и оно будет каждый раз перерегулироваться, т.е. отображения различий не собьются, а пересчет номеров строк будет производиться на лету.
Reconcile Java compare structure while typing

2. Новые опции форматтера - сохранять пользовательские переносы строки
Теперь форматтер Java-кода сохраняет пользовательские переносы строки и не объединяет их, и не выравнивает.

Предположим, мы написали вот такой вот код:
Formatter option to preserve user line breaks

И выполнили его форматирование:
Formatter option to preserve user line breaks

Настраивается данная опция на странице Java > Code Style > Formatter. Ищите опцию Never join lines на вкладках Line Wrapping и Comments.

3. Автодополнение конструкторов
То, что уже давно было в IntelliJ Idea и чего так не хватало в Eclipse. Теперь автодополнение кода умеет предлагать конструктор инстанцируемого класса из списка доступных.
Constructor completion

4. Генерация метода toString()
Добавлена генерация метода toString() для класса. Вызывается генератор из меню Source > Generate toString()... Можно выбрать какие поля и методы включить в процесс генерации, настроить формат генерируемого сообщения.
Generate toString()

5. Изменения в генераторе методов hashCode() и equals
Добавлен чекбокс "использовать блоки в операторе 'if'.
Optionally use blocks when generating hashCode() and equals()

6. В диалог Quick Fix добавлен запуск рефакторинга переименования сущности
Теперь рефакторинг "переименование сущности" можно запускать из диалогового окна Quick Fix.
Quick Fix to start Rename refactoring

7. Наследование JavaDoc-описаний переопределяемых методов
JavaDoc-вьювер теперь поддерживает атрибут {@inheritDoc} - добавляет ссылку на переопределенные методы.
Improved Javadoc view and hover

8. Гиперссылки в заголовках JavaDoc
Упоминания типов данных или членов класса в заголовках JavaDoc вьювера и всплывающих окошек теперь являются ссылками на JavaDoc соответсвующих элементов. Можно кликнуть, например, на тип возвращаемого методом значения и прочесть JavaDoc по этому типу. Вернуться назад можно будет кликнув Back в тулбаре.
Links in Javadoc headers

9. Гиперссылка на реализацию
Теперь при клике на переопределенном методе появляется всплывающее окошко, предлагающее вызвать реализацию метода или его определение. Поведение ссылки можно настроить на странице General > Editors > Text Editors > Hyperlinking.
Open Implementation hyperlink

10. Гиперссылка на файл-свойств
Теперь при клике на константе, определенной как ключ в файле-свойств (.properties) всплывает окошко, которое показывает имя этого файла. Окошко содержит кнопочку, нажав на которую, можно открыть сам файл свойств.
Open in Properties File action in NLS Hover

11. Двойной клик по комментарию
Двойной клик в начале или конце комментария выделяет весь комментарий. После чего его можно скопировать или вырезать.

12. Вызов *.jardesc файлов через JAR Export - визард
*.jardesc файлы - файлы описания jar-архивов открываются теперь с помощью визарда экспорта JAR.
Open *.jardesc files with JAR Export Wizard

13. Файлы с результатами JUnit-тестов теперь открываются с помощью вида JUnit
Файлы, содержащие результаты JUnit-тестов (созданные с помощью Eclipse или Ant JUnit task) теперь открываются с помощью вида JUnit по двойному щелчку или через выбор Open With > JUnit View в контекстном меню.
Open test result files in JUnit view

Если файл находится вне воркспейса, то открыть его можно через Test Run History-меню или выполнив импорт (с помощью Import).
Open test result files in JUnit view

14. ClassPath теперь учитывает значения заголовков Class-Path в манифестах jar-файлов
Заголовок Class-Path, указанный в манифесте jar-файла теперь учитывается Java-моделью. Все Jar-ы указанные в заголовке Class-Path автоматически добавляются в build-path проекта.
Classpath resolution honors the 'Class-Path' header of JAR manifest file

15. BuildPath теперь допукает дублирование сущностей
Дублирование сущностей в BuildPath теперь допускается, если эти сущности разнесены по разным библиотекам. К примеру, две пользовательские библиотеки используют lib.jar - это допустимо.
Build path resolution tolerates duplicate entries

Однако, если мы просто поместим в BuildPath эти библиотеки - то получим сообщение об ошибке.
Build path resolution tolerates duplicate entries

16. Новый экспортер исполняемых JAR-файлов
Теперь исполняемые JAR-файлы экспортируются со всеми зависимостями. Причем, можно явно указать куда экспортировать эти зависимости - в сам JAR-файл или в каталог рядом с ним.
Runnable Jar-in-Jar exporter

17. В Call Hierarhy теперь можно просматривать вызовы конструкторов
В контекстное меню методов, отображаемых в Call Hierarhy добавлен пункт Expand With Constructors. При выборе этого пункта будут отображены вызовы всхе конструкторов, которые производятся в методе.
Call Hierarchy can expand with constructors

18. Добавление патчей через Package Explorer
Теперь можно еще быстрее применять патчи, которые оставлены, например, в багзиле. Достаточно скопировать патч в буфер обмена и вставить через Package Explorer.

19. Удаление Working Set из Package Explorer
Добавлена возможность удалять Working Set'ы непосредственно из Package Explorer'а. Напомню, что Working Set - логическое объединение проектов.
Delete working sets from the Package Explorer

20. Сортировка рабочих пространств
В диалогове окно Configure Working Sets... добавлена опция Sort working sets, позволяющая включить сортировку рабочих пространств по алфавиту. Если у вас очень большой проект и в нем выделено много рабочих пространств - данная опция может быть очень удобной.
Sort working sets in Package Explorer

21. Предупреждение при сравнивании переменной с самой собой.
При сравнивании переменной самой с собой (что естественно вернет true) будет генерироваться предупреждение. Данное поведение можно настроить установив значение Potential programming problems в Java > Compiler > Errors/Warnings или просто кликнув на кнопочке Configure Problem Severity во всплывающем сообщении о ворнинге.
New compiler diagnostic

22. Предупреждение компилятора при потере модификатора synchronized
Возможна ситуация, когда мы переопределяем метод, снабженный модификатором synchronized, но забываем поставить данный модификатор у разрабатываемого метода. Теперь Eclipse сгенерирует соответствующее предупреждение и - самое главное - quick fix для него.
Compiler problem for missing synchronized modifier

Отключить данную возможность можно во вкладке Potential programming problems в меню настроек Preferences > Java > Compiler > Errors/Warnings

23. Подавление ошибки компиляции в case-секции оператора switch, отмеченной комментарием $FALL-THROUGH$
По-хорошему в Java каждая case-секция оператора switch должна завершаться или ключевым словом break или return, или генерацией исключения. Иначе, будут выполнены все секции, следующие за данной. Теперь за каждой такой "незакрытой" case-секцией можно будет следить, оставляя комментарий //$FALL-THROUGH$. Можно настроить Eclipse, чтобы он генерировал предупреждения, если отсутствует break, return, throw или данный комментарий.
Suppress compiler problem for 'switch' case fall-through

Для этого надо отметить галочку 'switch' case fall-through на вкладке Potential programming problems в меню настроек Preferences > Java > Compiler > Errors/Warnings.

24. Проблемы компиляции при потере метода hashCode()
Каждый java-разработчик знает, что при переопределении метода equals() необходимо переопределять и метод hashCode(). Некоторые, правда, об этом забывают. Ничего, Eclipse теперь напомнит им об этом.
Compiler problem for missing hashCode() method

Как видим, quick fix предложит нам два решения этой проблемы - переопределить метод hashCode() или сгенерировать hashCode() и equals().

По умолчанию эта опция отключена. Включить ее можно на вкладке Potential programming problems в меню настроек Preferences > Java > Compiler > Errors/Warnings.

25. Проблемы компиляции при появлении мертвого кода
Eclipse генерирует предупреждение при наличии мертвого кода, т.е. такого кода, который никогда не вызовется. По умолчанию данная опция включена, но ее можно настроить на вкладке Potential programming problems в меню настроек Preferences > Java > Compiler > Errors/Warnings.
dead code diagnosis

Plugins Development Enviroment (PDE)


1. Редактор для декларативных сервисов
В PDE добавили инструментарий для разработки декларативных сервисов. Подробнее про декларативные сервисы OSGi можно почитать в статье Введение в OSGi. Декларативные сервисы - первое знакомство. Инструментарий содержит расширения для редактора кода, средства автодополнения, визарды, редакторы свойств и т.д.
Declarative services editor

Так же добавлен пример декларативного сервиса, который можно выбрать при создании нового PDE-проекта.
DS Tooling enhancements

2. Настройки версионирования
Иногда при разработке OSGi-бандлов можно запутаться в требуемых версиях пекеджей и бандлов. К счастью, теперь PDE берет эту работу на себя и будет проверять версии импортируемых, экспортируемых пакетов и бандлов.
Versioning options

3. Экспорт плагинов в один клик и установка в уже работающий воркспейс
Заметное упрощение разработки бандлов. Теперь можно одним кликом экспортировать разрабатываемые бандлы и установить их в уже запущенную систему.
Single-click export and install into running platform

Экспортированные бандлы появятся в списке установленных и смогут быть удалены из платформы.
Single-click export and install into running platform

4. Экспорт вместе с бинарными циклами
Теперь можно экспортировать бандлы вместе с бинарными циклами. Бинарные циклы - циклы, существующие в целевой платформе (для которой пишется плагин), а не в нашем воркспейсе. Данная опция добавлена на различные визарды PDE и включена по-умолчанию.
Exporting with binary cycles

5. Экспорт source-бандлов
В OSGi допустимы бандлы, содержащие только исходники других бандлов. В частности, такими являются все бандлы Eclipse, имеющие в названии слово source в названии. Теперь можно создавать такие бандлы из PDE.
Export source bundles

6. Экспорт классов из воркспейса
Движок экспорта плагинов теперь поддерживает экспорт существующих класс-файлов из воркспейса. Если данная опция включена, то PDE не будет запускать перекомпиляцию классов, а воспользуется существующими файлами.
Export plug-ins using class files from the workspace

7. Параллельная компиляция
Если плагины рассортированы по feature, Eclipse может их компилировать параллельно. Для этого необходимо установить свойство parallelCompilation=true в конфигурации сборки. Устанавливая свойства parallelThreadCount и parallelThreadsPerProcessor, можно управлять параметрами параллельной сборки.

8. Изменения настроек совместимости API
Упрощены настройки совмести API. Колличество опций уменьшено, сами опции перегруперованы. Улучшены описания опций. Разработан набор регрессионных тестов (более 1600) для валидации API, проверки совместимости и проверки сценариев управления версиями.
API compatibility options

9. Валидация среды исполнения
PDE предупредит вас, если вы пытаетесь использовать код из системных библиотек, не поддерживаемых средой исполнения, для которой разрабатывается ваш бандл. Например, если вы при создании проекта указали среду исполнения J2SE-1.3, но разрабатываете с использованием JDK 1.5 или JDK 1.6 вы можете легко ошибиться и начать использовать методы, доступные в JDK 1.5, но недоступные в J2SE-1.3, для которой разрабатывается бандл. Чтобы избежать таких ошибок добавлена опция Invalid references in system libraries, которую можно включить на вкладке API Use страницы Plug-in Development > API Errors/Warnings.
Execution environment validation

10. Уведомление о поломке API
Разработчики добавили уведомления об критических изменениях в API, т.е. тех изменениях, в результате которых что-то может сломаться. Это особо важно, если вы внесли столько изменений, что пора менять мажорную версию вашего плагина. Используйте новую настройку Report API breakage even if authorized by major version increment, чтобы включить эту фичу. Настройка расположена у начала таба API Compatibility на странице редактирования настроек Plug-in Development > API Errors/Warnings. Когда эта опция включена, вам будут доступны фильтры, исключающие API с неподдерживаемыми изменениями.
Selective API breakage

11. Сравнение API
Теперь можно просматривать изменения, которые произошли в API относительно некоего базового состояния. Для этого надо выбрать проект и выполнить Compare With > API Baseline, выбрать базовое состояние API и нажать OK. После этого можно увидить что-то вроде:
Compare APIs

12. Фильтр проблем устаревших API
PDE генерирует предупреждение при использовании API, которое долго не поддерживалось, поскольку такое API может являться источником несовместимостей.
Stale API problem filters

13. Аnt-таски для анализа, заморозки API и генерации отчетов
Разработаны API Tool Ant Tasks. Именно эти таски используются для сборки самого Eclipse. Документация по ним поставляется в месте с PDE.
API tooling Ant tasks

14. Копирование стектрейсов в консоль
Вьювер логов теперь позволяет копировать сообщения об ошибках и дампы стектрейсов в консоль.
Jump to Console from stacktrace

15. Генератор файлов для локализации плагинов
Добавлен новый визард (PDE Tools->Internationalize...), поддерживающий генерацию NL-фрагментов плагинов.
NL fragment generation

16. Страница настроек целевых платформ
Добавлена страница настроек для целевых платформ (Preferences > Plug-in Development > Target Platform). Данная страница отображает все целевые платформы, определенные в воркспейсе. Можно добавлять/удалять/редактировать платформы, а также быстро переключаться между ними.
Target platform preference page

17. Отображение состояния целевой платформы
Добавлен новый вид Target Platform State, отображающий бандлы, которые будут использоваться при сборке, запуске и отладке разрабатываемого плагина.
Target platform state

18. JUnit тесты плагинов теперь можно запускать вне UI-потока
Теперь можно запускать JUnit тесты плагинов вне UI-потока. Для этого в диалог запуска тестов добавлен специально обученный чекбокс.
JUnit plug-in tests in non-UI thread

19. Управление автозапуском плагинов
Редактор конфигурации запуска Eclipse теперь позволяет управлять автозапуском плагинов. Т.е. теперь можно включить автозапуск всех плагинов и тогда они все стартуют вместе с Eclipse, либо тех, которыми вы часто пользуетесь.
Start levels

20. Изменен вид реестра плагинов
Вид "Реестр плагинов" отображает OSGi-сервисы, предоставляемые плагинами.
Plug-in Registry view enhancements

Так же добавлена возможность отображать фрагменты данного плагина.
Fragments in the Plug-in Registry view

Team/CVS


1. Диалог просмотра истории тегов
Сам я с тегами в Eclipse не работал, но судя по всему штука удобная. Основная идея - состояние воркспейсов можно сохранять, отмечая тегами. Соответственно, данный диалог служит для отката на предыдущее работоспособное состояние.
History in Tag Resources Dialog

2. Новые опции в диалоге настройки синхронизации по времени
В диалоге настройки Synchronize Schedule появились новые опции. Теперь можно запускать синхронизацию в заданное время и задавать частоту повторов синхронизации.
More options for synchronization scheduling

3. Улучшение диалога настроек соединения
Диалог настроек соединения изменен в сторону лучшего отображения настроек Proxy. Поддерживает экспорт настроек из браузера, Gnome, переменных среды Linux.
Improved Network Connections page

4. Apply patch прямо в виде Synchronize
Теперь применить чей-то патч можно непосредственно на открытом виде синхронизации с CVS-сервером. Очень удобно при коммитах.
Apply patch in the Synchronize view

5. Warnings при экпорте проектов
В Eclipse есть возможность экспортировать сразу множество проектов. Однако при этом возможна ситуация, когда по той или иной причине какие-то проекты не могут быть экспортированы. Теперь, когда происходит эта досадная неприятность мы увидим предупреждение.
New export wizard warning

Equinox


1. Реализация OSGi R4.2
Более полно теперь реализован драфт стандарта OSGi R4.2. Изменения касаются механизма безопасности, механизма трассировки и отладки, а также framework launching.

2. Добавление декларативных сервисов в платформу
Eclipse RCP отныне включает и поддержку декларативных сервисов. Подробнее про декларативные сервисы можно прочитать в статье Введение в OSGi. Декларативные сервисы - первое знакомство, а здесь тред из мейл-листа разработчиков Eclipse.

3. Новое API для многопоточности
Серьезные изменения в API, обеспечивающем многопоточную работу Equinox. Предполагается, что это приведет к ускорению работы системы на многоядерных процессорах.

SWT


1. Появился JNI-генератор
Добавлен новый плагин, для упрощения процесса генерации SWT JNI кода.
JNI Generator

2. JavaScript-to-Java
Теперь в виджете Browser JavaScript-код может обращаться к Java. Поддерживаются следующие типы данных: числа, булевские переменные, строки, null и массивы. Пример.

3. Поддержка OpenGL в Cocoa
Версия SWT для Cocoa теперь работает и с OpenGL.
OpenGL on Cocoa

4. На Mac Cocoa модальные окна имеют вид, характерный для этой системы
Теперь на Mac Cocoa модальные окна Eclipse отображаются так же, как и модальные окна других приложений. Интерфейс Eclipse становиться все более и более приближен к родному маковскому.
Using sheets on Mac Cocoa

5. Полная поддержка Drag-n-Drop для Mac Cocoa
Cocoa Drag-n-Drop в деревьях и таблицах теперь полностью поддерживается в SWT вместе со всеми native-фичами платформы.
Improved DND feedback on Cocoa

6. Улучшение copy-paste файлов
Теперь можно напрямую перемещать файлы между Explorer и менеджером файлов Nautilus. Как это работает с другими менеджерами файлов - пока не знаю, но гномоводы могут радоваться.
Improved copy and paste support

7. Альтернативное расположение кнопок
В версии SWT для GTK появилась возможность изменять дефолтное расположение кнопок в Eclipse. Чтобы разместить кнопку OK слева, необходимо внести изменения в файл ~/.gtkrc-2.0 - добавить строку gtk-alternative-button-order=1.
Alternate button order

8. Выпадающий календарик для выбора даты/времени
Добавлен новый компонент пользовательского интерфейса - выпадающий календарик, для выбора даты/времени. Выгладит календарик так:
DateTime DROP_DOWN

9. Поддержка браузера Mozilla на Solaris x86
В Eclipse для Solaris x86 включена поддержка браузера Mozilla.
Mozilla browser support on Solaris x86

10. Выбор ориентации в диалоге печати
В диалоге печати теперь добавлена возможность выбора ориентации: портретная или альбомная. Так же можно задать разворот на 180 градусов.
Paper orientation

Так же добавлена поддержка новых версий библиотек, в частности JUnit 4.5, Jetty 6.1, ICU4J 4,

По поводу быстродействия трудно сказать что-либо определенное. Во-первых данный параметр зависит от платформы. Лично я на Windows XP не заметил резкого прироста быстродействия. По отзывам владельцев ноутбуков от Apple - сборка с Cocoa работает гораздо шустрее предыдущих версий. На днях постараюсь потестировать версию под Linux. Насколько я знаю, именно сейчас разработчики Eclipse целенаправленно занимаются повышением быстродействия. Т.н. performance bugs.

Здесь надо сказать спасибо тем, кто дочитал до конца. Как видим, список изменений впечатляет, причем он далеко не полон. Поэтому у меня такой вопрос к читателям: какие изменения наиболее важны для вас?

З.Ы. А может вы заметили какое-то новшество, которого нет в списке? Не постесняйтесь - напишите об этом комментарий.

Понравилось сообщение - подпишитесь на блог или читайте меня в twitter

З.Ы. Если Вы есть во Вконтакте - вступайте в группу Russian Eclipse Community.

30 комментариев:

Яцюк Павло комментирует...

Спасибо за достаточно полный обзор. Теперь видно, что переходить на новую версию стоит.

SiMBa комментирует...

все классно, вопрос такой pydev каснется?

Samolisov Pavel комментирует...

Насколько я знаю, PyDev - отдельный плагин. Что вы имели ввиду под словом "коснется"? Запустится ли он на Galileo? Не знаю, я на Python не пишу.

alexshock комментирует...

> 1. Поддержка Solaris x86
> Теперь Eclipse можно запускать на Solaris x86.

Я уже давно юзаю 3.4 на OpenSolaris 2008.11 x86

Samolisov Pavel комментирует...

Моя ошибка. Новшество не в том, что можно запускать на OpenSolaris, а в том, что теперь OpenSolaris x86 - официально поддерживаемая платформа. Теперь для нее будет разрабатываться своя ветка SWT и будут официальные билды.

Михаил Хомутецкий комментирует...

Фичи, которые относятся именно к самой платформе появятся и в PyDev, если он встанет на Eclipse 3.5.

sigizmund комментирует...

А разве не все давно уже на Галилее сидят? ;-)

Михаил Хомутецкий комментирует...

Кстати, кому интересно сравнить производительность Eclipse, по сравнению с предыдущей веткой, то рекомендую заглянуть сюда: http://download.eclipse.org/eclipse/downloads/drops/S-3.5RC1-200905151143/performance/performance.php
Это сравнение 3.5RC1 с 3.4.2

Эти и другие сравнения можно посмотреть отсюда http://download.eclipse.org/eclipse/downloads/

sovok_kpss комментирует...

А под Linux высота табов в редакторе так и осталась громадной?
Знаю, что можно использовать Extended VS Presentation, но предлагаемые плагином стили мне кажутся неюзабельными, мне бы только толщину таба урезать ;)

Samolisov Pavel комментирует...

В линукс SWT использует GTK2, впринципе можно настроить. Сегодня посмотрю 3.5 на Linux и отвечу на ваш вопрос.

Samolisov Pavel комментирует...

Проверил - установил последний PyDev с помощью update-сайта. Работает!

Ivan комментирует...

Да, изменений чего-то прям как никогда. Порадовал автокомплит конструкторов.
А что за шрифт в первом скриншоте про SWT?

Samolisov Pavel комментирует...

Не скажу насчет "как никогда" - не интересовался. А про шрифт... скриншот не мой, я только дал объяву )

Ilzar комментирует...

Спасибо большое! Много полезного для себя нашел и уже пересел на 3.5.

killer комментирует...

интересно плагин пхпеклипс под него уже обновили

jon комментирует...

Интересно конечно. Но пока осваиваю текущий релиз :) Хотя некоторые нововведения заинтересовали.

Vii комментирует...

Samolisov Pavel, а PyDev ставили из репозитория Aptana? Охото посмотреть что там нового так сказать «своими глазами» :))

Samolisov Pavel комментирует...

Vii, нет, PyDev я ставил из т.н. ванильного репозитория.

Alexander Lipatov комментирует...

Лично для меня самое главное - в WTP войдет XSL редактор! Без него было как-то грустно (пользовал XML редактор для XSL файлов) :-) Мне кажется что такого рода приятностей еще много ;-)

sk комментирует...

Огромное спасибо за обзор, узнал много интересного. Самыми значительными изменениями для меня оказались следующие:

1. Возможность сравнения Word-документов непосредственно в Eclipse... - сильно этого не хватало, правда, хотелось бы ещё также поддерживать формат odf (OpenOffice), ну хоть так.

2. История инсталяций - очень полезнаю, штука, я считаю.

3. Всяческие навороты для редактора сравнения файлов

4. Go To и Go Into в Project Explorer'е - мелоч, но как же не зватало!

5. Переключение редакторов и страниц в многостраничных редакторах - тоже приятная мелоч! :-)

6. Выпадающий календарик для выбора даты/времени - Ура, не прошло и 5 лет! :-)

Остальные изменения сложно перечислять по пунктам, скажу только, что все улучшения для JDT, PDT, JUnit и платформы в целом, очень интересны и важны, руки чешутся их поизучать более подробно.

Samolisov Pavel комментирует...

мне в WTP понравилась работа с JavaScript, в частности - поддержка библиотек. В общем, можно обновляться до WTP 3.1M7

Kurill комментирует...

А разве истории инсталляций уже не было? Help > Software Updartes... > Revert Configuration...

И вроде Go Into уже есть в 3.4.2 как минимум.

Samolisov Pavel комментирует...

Проверил, действительно эти функции есть в 3.4.2, но разработчики Eclipse Galileo преподносят их как новые. Я так понимаю, дело в том, что разработка Galileo и 3.4.2 велась параллельно и сначала фичи попали в 3.5M1, а затем в 3.4.2. Я не буду менять список, потому что те, кто пользуется базовой версией 3.4 о ней могут не знать. Под рукой нет 3.4, но думаю в ней эти фичи отсутствуют.

Анонимный комментирует...

Сильно не хватает лаконичного механизма сниппетов с возможностью добавления hot key. Чуть менее не хватает интегрированного инструмента наподобие DeltaWolker с возможностью обмена файлами (единичных и групп из дерева), открытого документа, опять же на hot key.

Анонимный комментирует...

куда-то большинство скринов пропало:(

Samolisov Pavel комментирует...

Спасибо, что заметили. Перезалил скриншоты на свой хостинг.

Зуфар комментирует...

Под linux проблема с всплывающими окнами javadoc. Русские буквы отражаются некорректно, не встречалось? Скриншот

Samolisov Pavel комментирует...

Нет, мне такая проблема не встречалась, сегодня постараюсь посмотреть.

Samolisov Pavel комментирует...

Проверил. Если использовать кодировку UTF-8, то такой проблемы нет.

Зуфар комментирует...

Проблема была в XulRunner,а точнее в версии xulrunner-1.9.0.10. Решилась она пропихиванием в eclipse более старой версии xulrunner-1.8.1.13. (-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.8.1.13)