Russian Homeworld Wiki
Advertisement

Рано или поздно любой разработчик модов должен столкнуться с тем, что мод становится слишком большим для того, чтобы работать над ним в одиночку. Но одно дело - делать всё одному, а совершенно другое - командой.
Eclipse - универсальная бесплатная профессиональная среда разработки, позволяющая с большим удобством разрабатывать программы на самых разных языках - изначально это был язык Java, но модульность "Клипсы" позволила сделать её родной для очень многих языков программирования - от C до PHP с JavaScript.
Для нас "Клипса" интересна тем, что она изначально рассчитана на групповую работу, а также активную разработку с участием многих одновременно открытых классов (читай - текстовых файлов) в одном окне. В принципе, освоив эту среду разработки, можно там же с успехом не только изучать другие языки программирования, но и использовать на профессиональной основе.

Установка[]

Eclipse Workspace

Смена Workspace

"Клипсу" можно скачать с сайта eclipse.org. Как уже было упомянуто, поскольку поддержки lua в этой IDE нет, то можно выбирать любую понравившуюся версию, например, версию с JavaScript.
Eclipse не нужно инсталлировать - он уже готов к использованию сразу после распаковки. Единственное, что ему нужно - это проинсталлированная Java. Её можно взять с java.com. Хотя, конечно, Java, как и Adobe Flash, трудно представить не установленным на пользовательских компьютерах, ведь её требует любой браузер, а также множество других приложений, вроде Libre/Open Office. Фактически, это делает программу переносимой на флэшке - главное, не забыть рабочие файлы.
При первом запуске потребуется указать, где будет находится папка, куда IDE будет сохранять рабочие файлы. Если отметить галочкой опцию "Use this as the default and do not ask again", то программа будет использовать её по умолчанию, и больше не спрашивать ни о чём. В будущем, если потребуется поменять это самое рабочее пространство, то это легко исправляется через File -> Switch Workspace.

Виды[]

Eclipse

Среда разработки Eclipse

Виды, в принципе, - это те же окна, только служащие для какой-то специфической задачи, вроде отображения дерева папок или показа заданий проекта.
"Клипса" вас встретит несколькими открытыми видами: Project Explorer, Editor Area, Outline, Problems.

  • Problems - этот вид отображает все проблемы связанные с кодом. В нашем случае это неважно, так как редактор всё равно не распознаёт lua-код.
  • Outline - этот вид отображает функции написанного кода. В нашем случае это неважно, так как редактор всё равно не распознаёт lua-код.
  • Tasks - этот вид отображает задания по проекту;
  • Project Explorer - этот вид отображает дерево папок вашего проекта.
  • Editor Area - главный вид, где можно писать и рассматривать код.

Новые виды можно открыть через Window -> Show View.

У каждого вида есть несколько кнопок в правом верхнем углу: стандартные minimize и maximize; иногда "треугольничек", вызывающий меню конкретного окна. Также, у Project Explorer есть кнопки "Link with Editor" - в дереве папок выделяет файл, над которым в данный момент работает пользователь; и "Collapse All" - сворачивает всё дерево папок до корневой директории. Кроме того, из свёрнутого состояния (после нажатия кнопки minimize) вид можно вернуть обратно, "потеснив" другие виды, если оно требует на постоянной основе, так и, для быстрого режима, открыть её поверх всех, после чего оно свёрнётся обратно, не будучи активным. Похожего эффекта можно добиться, если сделать ПКМ на самой "закладке" окна и выбрать пункт Fast view (он при этом отметится галочкой): тогда вид скроется вниз и будет открываться поверх всех видов, пока его не отключишь этот режим. В нижнем левом углу "Клипсы" есть кнопочка "Show View as a fast view", где можно выбрать другие душеугодные виды для работы в таком режиме.

В том же контекстном меню можно выбрать режим Detached, чтобы можно оперировать этим видом, как окошком Windows - отдельно от основного окошка Eclipse. Эта фича полезна в случае, если есть несколько мониторов: виды разной важности можно расставить на разных экранах, концентрируясь лишь на самом важном.
Ну и конечно, на "закладке" каждого вида есть "крестик", закрывающий это окно за ненадобностью.

Вид "Project Explorer"[]

Eclipse Project Explorer Import

Окно Import

Чтобы создать новый проект, нужно, при помощи ПКМ, вызвать контекстное меню вида и выбрать New -> Project. В появившемся окне следует выбрать понравившийся тип проекта, в данном случае - General -> Project. Жмём Next, именуем проект, можно жать Finish. Если нажать Next, то "Клипса" предложит создать отсылку на какой-либо из существующий проект, которых у нас пока нет. Аналогично это делается через File -> New -> Project.

После этого можно импортировать файлы, нужные для работы, выбрав из контекстного меню пункт Import. После чего выбирается General -> File System, выбирается директория и файлы из неё, которые нужно импортировать, и жмём Finish. Файлы скопируются в рабочий workspace и уже там вы будете с ними работать.
Можно сделать иначе: при выборе директории и файлов, нужно нажать кнопку Advanced, поставить галочку напротив "Create links in workspace", чтобы работать напрямую с файлами из заданной директории, без копирования в рабочее пространство "Клипсы". Например, можно импортировать ссылки на папку %homeworld_2_root%\Data, и тогда, если создать директории и файлы в среде разработки, они будут создаваться уже на месте, в папке \Data вашего HW2.

Аналогичную фишку можно сделать при создание папок и файлов через New -> Folder/File. В данном случае можем как создать новую папку/файл, так и сделать линк на уже существующие файл/папку, через кнопку Advanced -> Link to alternate location (Linked Folder). В данном случае выгода состоит в том, что мы можем дать объектам свои, а не оригинальные названия.

Ещё одна вещь, которая нужна - это выбор редактора файлов. При ПКМ на произвольном файле, из контекстного меню (Open With) можно выбрать редактор, который будет его обслуживать. По умолчанию предлагаются четыре типа редакторов:

Eclipse Project Explorer OpenWith

Выбор редактора

  1. Text Editor - простой текстовый редактор типа NotePad;
  2. System Editor - файл откроется программой, которая зарегистрирована на этот тип файла в системе. Например, *.odt - в OpenOffice;
  3. In-place Editor - редактор среды разработки, зарегистрированный на этот тип файлов;
  4. Default Editor - редактор, который настроен по умолчанию на этот тип файлов - или что-то из трёх первых, или какой-нибудь другой, из плагинов;

При выборе пункта Other "Клипса" позволит выбрать любой из внутренних (из списка Eclipse) или внешних (из системных) редакторов.
Чтобы зарегистрировать новое расширение файла и его редактор по умолчанию, нужно пройти в Window -> Preferences -> General -> Editors -> File Associations.

Здесь же можно сравнить два и более файла: выделите посредством зажатия Ctrl или Shift несколько файлов, а затем, сделав ПКМ, выберите из контекстного меню Compare With -> Each Other. Если файлов более двух, то "Клипса" попросит выбрать базовый для сравния остальных. Все изменения будут выделены рамочками, серым, синим и красными цветами.

При просмотре уж слишком ветвистого древа каталогов - например, распакованного homeworld.big - можно ограничить вид содержимым только одной "ветки"-папки.
Для этого на нужной папке сделайте ПКМ и из выпадающего меню выберите второй пункт сверху - Go Into. После этого, среди кнопочек Project Explorer появятся две стрелочки, позволяющие переключаться туда и обратно, как в браузере.

Вид "Editor Area"[]

Eclipse EditorArea

Окно "Editor Area"

Любой файл открывается здесь. Каждый новый файл открывается в новой вкладке. При попытке открыть уже открытый файл вам просто его активируют. Чтобы сделать два окна (в случае, если файл очень длинный и нужно сравнить начало с концом, к примеру), нужно сделать ПКМ на закладке и выбрать пункт New Editor.
Там же есть удобная фишка для того, чтобы закрыть все открытые (Close All) или все открытые, кроме активного, (Close Other) файлы.
Чтобы сделать параллельный просмотр двух и более файлов, надо зажать ЛКМ закладку нужного вам файла и оттянуть её к любому из краёв Eclipse. Программа визуально (= покажет рамочку) предложит вам разместить новое внутреннее окно - теперь закладки новооткрываемых файлов могут появляться и в нём, в зависимости от того, какое окно активированно. Это удобно использовать для сортировки открытых файлов. Аналогично можно оперировать окнами типа "Project Explorer".

Теперь непосредственно к редактору: при ПКМ в открытом файле на крайней левой полосе, в контекстном меню можно:

Eclipse Editor Menu

Меню окна "Editor Area"

  • Оставить закладки (Add Bookmark...) - для быстрого поиска по коду в большом файле;
  • Назначить задание (Add Task...) - для того, чтобы знать, что в этом месте надо что-то делать (задания - "таски" - отображаются в окне Outline);
  • Show Quick Diff - вероятно, для сравнения файлов, но точно не знаю;
  • Включить отображение числа строк (Show Line Numbers) - и так понятно;
  • Включить свёртывание кода (Collapse) - позволяет скрывать текст функций и всего того, что находится между фигурными скобками; можно всё свернуть/развернуть, а также свернуть комментарии по коду - но, к сожалению, с lua это не работает... Визуально это отображается кружками-кнопочками с плюсиками и минусиками напротив начала функции/ первой фигурной скобки.

Вид "History"[]

По умолчанию этот вид показывает историю изменения коммитов в репозитарий.
Но если, выделив файл, выбрать из контекстного меню Team -> Show Local History, то в этом виде появляется список дат, когда изменялся этот файл. Нажав на кнопку Group Revisions by Date даты будут сортировать по дням, неделям, месяцам итд.
Если два раза кликнуть по этой дате, то откроется версия файла на нужный вам период. Можно сразу отжать кнопочку Compare Mode, чтобы открывались не отдельные файлы, а сразу же компаратор последней версии и той, что вы выбрали.
Кнопка Link With Editor and Selection действует по тому же принципу, что и в Project Explorer.


Плагины[]

Eclipse Plugins

Добавление плагинов

Одни из вещей, сделавших Eclipse популярной, являются плагины. И без того полнофункциональная среда обогащается за счёт использования дополнительных модулей, позволяющих сделать из этой IDE мега-комбайн на любой вкус и цвет.
Чтобы найти подходящий модуль, следует пройти в Help -> Eclipse Marketplace.... Там находится встроенный поисковик, позволяющий увидеть самые новые(Recent), самые популярные(Popular)и уже проинсталлированные (Installed) плагины. Ну и конечно же, там же можно через ключевые слова задать поиск новых модулей.

Eclipse Plugins ManInstall

Добавление плагинов вручную

Но зачастую делается чуть-чуть иначе (в связи с тем, что "Marketplace" появился только в Eclipse 3.6 "Helios"): добавляют ссылку на сайт плагина через Help -> Install New Software.... В появившемся окне следует либо сразу вбить ссылку на нужный сайт в поле Work with и нажать Enter, либо нажать на кнопку Add, и тогда в поле Location сделать то же самое - поле Name можно оставить пустым.
После того, как Eclipse установит связь с сайтом, предоставляющий модуль, надо будет выбрать его компоненты (обычно выбираются все) для установки, и, после соглашения с лицензиями и перезагрузки всей среды, тот установится в вашу IDE.
Как основные, вам, возможно, потребуются эти несколько плагинов:

  • SVN plugin - плагин, позволяющий синхронизировать с SVN вашей команды моддеров. Из известных есть Subclipse, Subversive и прочие.
  • Mylyn - плагин, позволяющий получать таски из багтрекеров и распределителей тикетов. Есть много багтрекеров - JIRA, bugzilla, trac, assembla и прочие, и к каждому свой коннектор.
Eclipse Plugins Uninstall

Удаление плагинов

  • Lua Development Tools - плагин для работы с .lua файлами. При установке можно отметить только LDT, остальное не выглядит сильно нужным;

Чтобы удалить непонравившийся плагин, следует перейти в Help -> About Eclipse -> Installation Details, где можно увидеть список установленных плагинов. Там же можно их и удалить.

"Перспективы"[]

Как мы уже выяснили, в Eclipse есть "рабочее пространство" (все проекты и файлы, видимые в Project Explorer'e без смены Workspace'a), "перспективы", "виды" (то, что здесь названо окнами) и, собственно, "окна" (то, с чем мы оперировали в Editor Area).

Eclipse Perspective

Включение новых перспектив

"Перспективы", по сути, являются собранием видов определённой функциональности. Иногда эта функциональность пересекается (как, например, в JavaScript Eclipse есть Web & <JavaScript> перспективы, но особого отличия между ними замечено не было), так что их можно использовать наподобие рабочих столов, каждый со своими настройками, а-ля Linux, тем более, что никто не мешает добавить вид, формально принадлежащий одной перспективе, в другую. В основном, новые перспективы добавляются по закачке дополнительных плагинов к "Клипсе".
Из основных можно назвать:

  • Java, <JavaScript>, etc - в зависимости от вашего начальной конфигурации "Клипсы" вас будет встречать какая-то из этих базовых перспектив;
  • Team Synchronizing - в этой перспективе можно синхронизировать ваш проект с хранилищем: обновить, закачать свою версию, сравнить файлы;
  • SVN Repositary Exploring - здесь происходит указание репозитария, идентификация и просмотр сетевого содержимого и закачка всего или части проекта. Эта перспектива появляется после установки плагина Subclipse;
  • Lua/Lua Profiler - перспективы, появляющиеся после установки LunarEclipse/LuaEclipse плагинов; могут стать вашей базовыми рабочими перспективами;

Добавить новую перспективу можно кликнув на пиктограмме окошка на "главной закладке", находящейся в правом верхнем углу. Там же можно и удалить ненужную, сделав ПКМ на имени перспективы и выбрав Close. С помощью того же контекстного меню можно выбрать расположение списка перспектив.
Кроме того, можно убрать название перспективы, оставив от неё лишь значок (что-то вроде Pin Tab в браузерах) - надо сделать ПКМ на названии перспективы и снять галочку с пункта Show Text.

Перспектива "SVN Repository Exploring"[]

Eclipse SVN Add

Добавление репозитария

Чтобы закачать закачать себе локальную копию проекта, нужно переключиться на перспективу "SVN Repository Exploring", сделать ПКМ и из контекстного меню выбрать New -> Repository Location. В ответ на это покажется окно, в котором нужно будет ввести ссылку на репозиторий. Аналогично это делается через кнопочку Add SVN Repository, которая находится рядом со стандартными minimize, maximize и view menu.
После этого в "SVN Repository Exploring" покажется дерево каталогов проекта. Возможно, здесь будут запрошены идентификационные данные, так что, если папок и файлов в хранилище много, то лучше отметить "Save password", чтобы не пришлось вводить имя и пароль многократно.
Тут следует упомянуть о традиционной структуре любого серьёзного, или около того, проекта:

  • trunk - здесь хранится самая-самая последняя и актуальная версия;
  • tags - здесь хранятся прошлые версии транка; есть хорошая традиция не изменять таги, не коммитить в них;
  • branches - здесь хранятся ответвления транка, какие-то параллельные версии;
  • extra - здесь лежит всё, что не является проектом, но каким-то образом относится к нему;
Eclipse SVN CheckOut Menu

Checkout и прочее

Но у этих файлов ещё нет локальной копии, поэтому следует сделать ПКМ на корневой (тогда закачается всё, что есть в хранилище) или на какой-то конкретной папке (тогда закачается лишь нужная вам часть), и из контекстного меню выбрать пункт Checkout. После этого появится окно с опциями выкачки, но там можно оставлять всё по умолчанию, так что просто жмём Finish. Переключаемся в перспективу, предназначенную для работы с кодом, и видим в Project Explorer наши "родные" папочки.
В том же контекстном меню есть и другие любопытные пункты, вроде:

  • Show History - показать историю выкачек;
  • Relocate - изменить место нахождения репозитория;
  • Discard location - удалить связь с SVN. Может сопротивляться к удалению, ежели ещё есть внутренние связи;

И прочие малозначительные.

Перспектива "Team Synchronizing"[]

Eclipse Sync

Синхронизация

Если вы переключились в перспективу "Team Synchronizing" в первый раз, то вас встретит пустота окна "Synchronize". Единственной доступной кнопкой будет "Synchronize SVN (Workspace)": на неё и надо жать.
Предложат выбрать тип репозитория, выбираем SVN, свою локацию - и после этого мы сможем лицезреть различия между нашей версией проекта и тем, что лежит на сервере. В зависимости от того, какие изменения - наши или с сервера, стрелка у файла показывает вправо или влево. Если файла нет где-нибудь, то он отмечается плюсиком, как добавляемый; если есть, стрелка пустая.
Кнопки расположенные под надпись SVN (Workspace) помогут нам разобраться с этим хозяйством:

  • Synchronize SVN - мы уже с ней знакомы, позволяет синхронизироваться с репозитарием;
  • Expand All/Collapse All - соответственно, сворачивают/разворачивают древо каталогов;
Eclipse Sync03

Сравнение локальных и серверных файлов

  • Next Difference/Previous Difference - позволяет поочерёдно пройтись по изменениям в коде; при этом будут открыты оба файла и визуально (границами и подсветкой) показаны изменения; при этом можно копировать как неконфликтные изменения, так и просто все изменения из одного файла в другой;
  • Incoming Mode/ Outgoing Mode/ Incoming/Outgoing Mode/ Conflict Mode - эти кнопки позволяют просмотреть только исходящие или входящие изменения; одновременно и исходящие, и входящие изменения, или же только конфликтующие части локальной версии проекта и серверной;
  • Update/Commit All Outgoing Changes... - позволяет или загрузить новейшую версию с сервера, или закоммитить (загрузить) свою версию на сервер. Обычно, при одновременной работе в команде, вначале делают апдейт с сервера, а уже потом заливают свою версию на сервер;

В контекстном меню этого окна (ПКМ внутри него) можно найти много полезных опций по управлению содержимым репозитория. Одна из них, к примеру, опция Revert, позволяющая откатить свои изменения. Но обычно, после крупного косяка у себя, просто удаляются левый файл и заново апдейтят проект с репозитория. Или же, если возникают какие проблемы с линками, то делают ПКМ, выбирают Replace With -> Base Revision, а затем Replace With -> Latest from Repository
При коммите вам предложат выбрать, что загружать на сервер, и написать комментарий по поводу отсылаемого материала. После коннекта предложат идентифицировать себя, чтобы продолжить загрузку.

Eclipse Sync02

Синхронизация через обычную перспективу

Аналогичные вещи можно делать и вида Project Explorer. В Project Explorer`е все синхронизированные с сервером папки будут обозначены маленьким жёлтым цилиндриком, папки с местными изменениями - звёздочкой, а если статус не ясен (например, когда вы скачали проект, наделали кучу изменений, но ещё ни разу не синхронизировались), то на папках будет знак вопросика.
При ПКМ по одному из синхронизируемых файлов будет возможность зайти в контектном меню в пункт Team, где находятся пункты меню, также позволяющие управлять репозитарием:

  • Synchronize with Repository - синхронизироваться;
  • Commit - закомитить изменения;
  • Update to HEAD - обновить проект до самой последней версии транка;
  • Update to Version - обновить проект до какой-то версии (по тагу);
  • Branch/Tag - позволяет создать таг или ветку с проекта;
  • Merge - слить ветви проекта;
  • Switch to Another Branch/Tag/Revision - переключиться на другую ветку/версию;
  • Show History - показать историю коммитов;
  • Show Revision Graph - показать историю коммитов в виде диаграммы;
  • Revert - позволяет откатить изменения;

И прочие.

Поиск[]

Ссылки[]

  • Java - место, откуда можно скачать Java;
  • Eclipse - главный сайт "Клипсы";
  • Assembla - сайт для разработчиков: хранение файлов, SVN и прочие радости разработки;

Advertisement