Создать ярлык Eclipse для запуска определенной цели файла сборки - PullRequest
2 голосов
/ 10 ноября 2011

У меня есть разные проекты и несколько файлов сборки с разными целями.
Обычно, если я хочу запустить цель, я использую для перехода к представлению «Ant», затем выбираю файл сборки и затем выбираю цель для запуска.,

Вместо того, чтобы делать несколько шагов каждый раз, есть ли способ назначить сочетание клавиш для конкретной цели, чтобы я мог легко запускать эту цель.

Ответы [ 3 ]

1 голос
/ 10 ноября 2011

Главная страница настроек клавиш находится в разделе Окно> Настройки> Общие> Клавиши (или быстрее: нажмите Ctrl + 3 , введите Клавиши и нажмите Enter).См. Как управлять сочетаниями клавиш в Eclipse и почему вы должны статья, чтобы добиться того, чего вы хотите.

0 голосов
/ 30 апреля 2019

Хорошо, я попробовал метод " EASE-script + сочетание клавиш ", и он работает гораздо лучше:

Я создал " my_build_target.js"javascript-файл в основе моего рабочего пространства / проекта:

/**
 * keyboard: Alt+Shift+2
 */

targetmanager = org.eclipse.cdt.make.core.MakeCorePlugin.getDefault().getTargetManager()

projects = targetmanager.getTargetBuilderProjects()

folder = projects[0].getFolder("Test/Scenarios/Win32")

// targets = targetmanager.getTargets(folder)
target = targetmanager.findTarget(folder, "MyBuildTargetName")

target.build(new org.eclipse.core.runtime.NullProgressMonitor())

Обратите внимание на использование« магического ключевого слова »в заголовке комментария, которое указывает желаемую комбинацию клавиш, которую вы хотите использовать для сценария.

Затем вам необходимо указать места для загрузки ваших скриптов, перейдя по адресу:

  • " Windows >> Настройки >> Сценарии >> Расположение скриптов «

Лично я нажал кнопку« Добавить рабочее пространство »и указал базу моего рабочего пространства / проекта (там я и разместил свой сценарий).

Я перезапустил Eclipse, а затем воспользовался указанным сочетанием клавиш Alt + Shift + 2 .отменить сборку, которая выполняется с помощью этого метода.Я подозреваю, что это из-за того, что я использую этот класс NullProgressMonitor, когда я вызываю .build ().Если я узнаю, как добавить правильный монитор прогресса (который позволяет отменить прогрессирующую сборку), я обновлю этот ответ ...

0 голосов
/ 30 апреля 2019

ПРИМЕЧАНИЕ. Это мой первоначальный метод " Практически макрос + Beanshell ", от которого я отказался.Я предпочитаю другую технику, упомянутую в моем втором ответе.

Я также искал способ сделать это для конкретных целей создания.Единственный доступный встроенный ярлык - это «Перестроить последнюю цель», что не так уж и полезно, если вы часто меняете цели.

Хотя у меня пока нет конкретного решения, я 'Я работаю в направлении одного.

Я оцениваю плагин «Практически Макро».Он имеет возможность назначить сочетание клавиш для макроса.У него также есть возможность определять макрос как сценарий beanhell.

Итак, осталось только выяснить, какой тип сценария beanhell сможет выполнить конкретную цель make.

Iя пытался исследовать Eclipse API с помощью инструмента сценариев EASE.

Я поделюсь своими шагами / заметками о том, как я успешно запустил make-target программно (через их интерфейс javascript):

targetmanager = org.eclipse.cdt.make.core.MakeCorePlugin.getDefault().getTargetManager()

projects = targetmanager.getTargetBuilderProjects()

folder = projects[0].getFolder("Path/To/My/Build/Targets/")

// targets = targetmanager.getTargets(folder)
target = targetmanager.findTarget(folder, "MyBuildTargetName")

target.build(new org.eclipse.core.runtime.NullProgressMonitor())

Так что я думаю, что мне осталось (или кому-то еще, что это интересно):

  • преобразовать этот скрипт из javascript в beanshell и добавить его в качестве макроса через «Практически Макрос»плагин
  • Назначьте ему комбинацию клавиш

... довольно сложный способ сделать это, поэтому, если у кого-то есть более простые альтернативы, я открыт, чтобы выслушать их.

ОБНОВЛЕНИЕ :

FWIW, мне удалось создать скрипт-бин для «Практически Макро» в этой форме:

//Scripts are beanshell format (see http://www.beanshell.org/)

//variable               type
//styledText             the org.eclipse.swt.custom.StyledText instance for the current editor
//console                write output to the macro console via console.write(String), .writeln(String), .write(Exception)
//findTarget             the instance of org.eclipse.jface.text.IFindReplaceTarget
import org.eclipse.swt.custom.StyledText;
import org.eclipse.jface.text.IFindReplaceTarget;

c = org.eclipse.core.runtime.Platform.getBundle("org.eclipse.cdt.make.core").loadClass("org.eclipse.cdt.make.core.MakeCorePlugin");
m = c.getMethod("getDefault", null);
dflt = m.invoke(null, null);

targetmanager = dflt.getTargetManager();

projects = targetmanager.getTargetBuilderProjects();

folder = projects[0].getFolder("Path/To/My/Build/Targets/");

target = targetmanager.findTarget(folder, "MyBuildTargetName");

target.build(new org.eclipse.core.runtime.NullProgressMonitor());

И да,это делает вид работы, но единственное, что надо, это то, чтоЗатмение идеал киосков без каких-либо освежающих.Только после того, как сборка завершится, панель консоли будет обновлена ​​с окончательным выводом сборки (одним ударом), и Eclipse снова станет отзывчивым.

Так что это не идеально, но я полагаю, что это постепенный прогресс в направлениипосле ... Что касается того, что вызывает это зависание / остановку во время сборки, я не могу точно сказать, но я подозреваю, что плагин Practically Macro блокирует Eclipse до завершения макроса.

В следующий раз:

Возможно, если бы у меня было еще одно окно времени, чтобы посмотреть на это снова, я бы попытался посмотреть, смогу ли я запустить сценарий EASE-javascript с помощью сочетания клавиш.Эта страница, кажется, намекает, что это возможно:

https://wiki.eclipse.org/EASE/Scripts

...