Assigning a keyboard shortcut for a specific Eclipse build configuration

前端 未结 4 631
孤街浪徒
孤街浪徒 2020-11-28 23:39

In our Java project in Eclipse, we have several build configurations, as we have an engine that when run, builds installation jar for a specific projects according to the pa

4条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-29 00:08

    I was able to put together specific steps based on splintor's thread and get this working (I also added a loop at the top that finds any existing launch with the same name and terminates it, effectively making this a "restart" macro):

    To assign keyboard shortcuts to specific Eclipse launch configurations, perform the following steps:

    • Install https://sourceforge.net/projects/practicalmacro/, which you can inside Eclipse via Help->Software Updates: http://puremvcnotificationviewer.googlecode.com/svn/trunk/PracticallyMacroGoogleUpdateSite

    • Restart Eclipse and open Eclipse Preferences. You will have a new section called "Practically Macro Options", expand that section.

    • Click on "Editor Macro Definitions"

    • Click on "new..."

    • In the list of available commands, scroll down to "Editor Macro script (Beanshell)", select it and then click "Add->"

    • When the script editor pops up, add the following code to the existing code:

      import org.eclipse.debug.core.DebugPlugin;
      import org.eclipse.debug.core.ILaunchConfiguration;
      import org.eclipse.debug.core.ILaunch;
      import org.eclipse.debug.ui.DebugUITools;
          try
          {
            // Terminate process if it already exists from a previous launch 
            org.eclipse.debug.core.ILaunch[] allLaunches=DebugPlugin.getDefault().getLaunchManager().getLaunches();
            for (ILaunch l : allLaunches)
            {              
              if (l.getLaunchConfiguration().getName().equals("YOUR CONFIG NAME HERE"))
              {
                console.write("terminating launch: " );
                console.writeln(l.getLaunchConfiguration().getName());
                l.terminate();
                break; 
              }
            }
      
              org.eclipse.debug.core.ILaunchConfiguration[] allConfigurations=DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations();
              for (ILaunchConfiguration config : allConfigurations) {
                  if (config.getName().equals("YOUR CONFIG NAME HERE"))
                  {
                      DebugUITools.launch(config, "debug");
                      break;
                  }
              }
          } catch (CoreException e) {
              e.printStackTrace();
          }
          finally{}
      
    • Note line 11 that checks the configuration name, replace with whatever you want

    • Also note DebugUITools.launch command on line 15, you can pass either "run" or "debug"

    • In the "Macro info" section at the bottom of this dialog, specify a macro name

    • IMPORTANT!: If you want to be able to see this macro in the standard Eclipse key binding dialog, you need to assign an id. I started with 1...

    • Click OK

    • Expand the "General" section and click on "Keys"

    • You can now search the possible key bindings for your new macro's name and assign it to any key you want.

    • NOTE: After assigning a key I often had to close and restart Eclipse before the key binding was respected.

提交回复
热议问题