Плагин Eclipse: как активировать кнопку завершения в представлении «Отладка» - PullRequest
1 голос
/ 06 апреля 2011

Я пишу плагин для расширения Eclipse для пользовательского языка программирования.У меня работает вся конфигурация запуска, и любая программа на пользовательском языке запускается правильно, но я не могу активировать кнопку «Завершить» в представлении «Отладка».

Из того, что я исследовал, я знаю, что реализация инфраструктуры отладчика обеспечиваетдля действия Terminate, но, скажем, я не хочу реализовывать структуру на этом этапе и просто хотел бы иметь возможность завершить программу вместо того, чтобы отменить ее через диспетчер задач.Это возможно сделать?Или Debugger Framework - единственный способ сделать это?

Вот код из класса LaunchConfigurationDelegate,

public void launch(ILaunchConfiguration configuration, String mode,
        ILaunch launch, IProgressMonitor monitor) throws CoreException {

    // getting the resource from the workspace
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    IWorkspaceRoot root = workspace.getRoot();

    List<String> filenames = configuration.getAttribute(RELATIVE_PATH,
            Collections.EMPTY_LIST);
    List<String> rawPaths = configuration.getAttribute(RAW_PATH,
            Collections.EMPTY_LIST);
    List<String> projPaths = configuration.getAttribute(PROJECT_PATH,
            Collections.EMPTY_LIST);

    //CustomRunner is the interface to manage the custom language execution
    CustomRunner runner = null;
    try {
        CustomOutputHandler outHand = new CustomOutputHandler();
        runner = new CustomRunner(new File(projPaths.get(0)));
        runner.setOutputHandler(outHand);

        for (int i = 0; i < filenames.size(); i++) {
            IPath temp = new Path(filenames.get(i));
            IResource CustomFile = root.findMember(temp);

            if (CustomFile == null) {
                String msg = "The file "
                        + "<"
                        + temp.toString()
                        + ">"
                        + " could not be found in the workspace.\nIt may have been deleted or renamed.";
                throw new FileNotFoundException(msg);
            }
            CustomFile.deleteMarkers(IMarker.PROBLEM, false,
                    IResource.DEPTH_INFINITE);
            CustomErrorHandler errHand = new CustomErrorHandler(CustomFile);

            runner.setErrorHandler(errHand);

            //Runs the custom language file
            runner.run(rawPaths.get(i));
        }

После этого есть только несколько блоков catch.

Мне нужно теперь иметь возможность прекратить этот запуск через представление Debug, а в случае режима Run - через команду завершения меню Run.

У меня сейчас нет DebugTarget на данном этапе.И мой вопрос: есть ли другой способ прекратить этот запуск без расширения Debug Framework?

Я попытался запустить. В этом методе запуска (), но это не сработало.

1 Ответ

0 голосов
/ 07 апреля 2011

Пока вы не расширите поддержку отладки платформы, вы не сможете подключиться к кнопке Terminate в представлении Debug - по крайней мере, для этого нет API.Вы можете взломать внутреннюю часть инфраструктуры отладки, чтобы добавить поддержку без расширения, но расширение может быть намного проще, и это будет работать в будущих версиях Eclipse

...