Что в ней отличного? Я тоже долго не понимал, используя Eclipse. Eclipse тоже хорошая IDE.
Было непонятно, что может быть так уж сильно лучше? Все необходимое в Eclipse есть и работает.
Начиная от подсветки и автодополнений и заканчивая рефакторингом и квикфиксами.
Даже ctrl+click работает стабильно, в отличии от.
К тому же Eclipse, начиная с третьей версии, это не столько IDE, сколько открытая платформа для создания самых разных приложений. Приложения получаются путем написания плагинов к базовой платформе. Соответственно, к IDE на базе Eclipse есть тьма плагинов.
Однако, попробовав IDEA назад уже не хочется. Сложно объяснить почему.
Может быть это из-за большого количества функций, возможно, из-за степени проработки этих функций - тут бывают сюрпризы.
Приятные. Опять же, в отличии от. Порой даже непонятно, как она догадывается чего я хочу. Но ведь догадывается!
Продуктивность написания кода просто запредельна.
Чуть позже я выяснил, что IDEA это тоже платформа, только, в отличии от Eclipse, специализированная - для создания IDE.
PyCharm, WebStorm, RubyMine, PHPStorm, AppCode - это все IDEA. И даже Resharper построен на тех же принципах, хоть и плагин для VS.
В виде плагинов есть поддержка многих языков - Erlang, LUA, Haskell. Вышеперечисленные IDE тоже начинались как плагины.
А вот поддержки Паскаля как-то не было.
Как уже все наверное догадались, я такую поддержку решил добавить в виде плагина.
Для его функционирования достаточно бесплатной Community Edition версии 12.хх, которую можно скачать здесь:
http://www.jetbrains.com/idea/download/index.html
Сам плагин доступен как в официальном репозитории JetBrains, так и по ссылке:
http://www.siberika.com/download/IdeaPas.zip
Что сделано на текущий момент? (лучше на сайте смотреть, тут редко обновляется)
- контекстно-зависимые подсказки
- проверка использования юнитов в uses - не ли лишних, или указанных в interface, когда достаточно в implementation, с предложениями фиксов
- навигация от класса/интерфейса к наследникам/реализациям
- поиск объявления (модуля, переменной и т.д.) и упоминаний в коде
- навигация interface <-> implementation модуля/класса
- поддержка и подсветка синтаксиса - Delphi mode чтобы убить двух зайцев
- подсветка ряда ошибок, в т.ч. использования необъявленных идентификаторов с предложениями фиксов
- поддержка компиляторов - FPC и Delphi
- запуск программ
- поддержка условной компиляции и инклудов
- рефакторинг - переименование
- сворачивание кода (фолдинг)
а также все, что дает платформа. Навскидку:
- удобный поиск
- интеграция с VCS (SVN, Git, Mercurial, ...)
- поддержка XML и SQL
- TODO
Что планируется
- "понимание" кода, на уровне Явы
- предупреждения о сомнительных местах в коде, с предложениями фиксов
- подсветка всех ошибок, с предложениями фиксов
- поддержка рефакторинга
- импорт проектов из Lazarus и Delphi
- поддержка тестовых фреймворков
- поэкспериментировать с FPC for JVM. Вполне может получиться полноценная среда разработки с отладчиком.
Установка плагина
1. Выбираем в меню File->Settings, затем Plugins
2. Жмем "Browse repositories", находим I-Pascal
или
2. Нажимаем install plugin from disk
3. Указываем файл IdeaPas.zip
Чтобы компилятор вызывался необходимо отключить external build здесь:
File->Settings->Compiler
Создание проекта
В Идее проект состоит из т.н. модулей разных типов, которые имеют свои настройки.
В нашем случае тип модуля - Pascal module. Он соответствует проекту в Delphi/Lazarus и представляет собой отдельное приложение, библиотеку и т.д. Т.е. одновременно можно работать над группой привычных проектов, в рамках идеевского проекта.
Чтобы подключить компилятор, тем самым получив возможность компилировать и выполнять программы, в IDE необходимо добавить т.н. SDK определенного типа.
Это можно сделать в диалоге создания проекта:
1. Выбираем в меню File->New project
2. Выбираем "Pascal Module" чтобы создать модуль нужного типа
3. Нажимаем "New" справа от "Project SDK"
4. Выбираем директорию где установлен FPC
Настроить SDK можно так:
1. Выбираем в меню File->Project Structure
2. Выбираем SDKs
3. Нажимаем на нужный SDK
Хотя пока настраивать особо нечего, кроме опций компилятора.
А вот настроить модуль нужно, т.к. там указывается главный файл модуля, который будет компилироваться и выполняться:
1. Выбираем File->Project Structure
2. Выбираем Modules
3. Выбираем нужный модуль
4. Указываем главный файл в настройке Main file на вкладке Settings
На вкладке Sources можно указать пути к используемым библиотекам.
Компиляция и запуск
Скомпилировать файл можно из контекстного меню, пункт "Compile..."
С запуском сложнее - запуск в Идее осуществляется через т.н. Run configurations, который сперва нужно создать. Тип - FPC executable:
1. Выбираем в меню Run->Run...
2. Выбираем "Edit configurations..."
3. Нажимаем "+"
4. Выбираем "FPC executable"
5. Нажимаем кнопку "Run" чтобы запустить приложение
Назначение данного плагина не конкуренция с Lazarus, а скорее дополнение.
Вопросы? Пожелания? Мысли?
Все приветствуется!
Также хотелось бы увидеть мысли о том, какие сомнительные места модно выделять в коде.
Мне вот пока приходят мысли о коде типа:
x := byte(b);
Т.е. приведение булевого типа к числовому не через Ord().