Eclipse插件在代码中使用标准格式函数

时间:2014-05-15 11:53:41

标签: java eclipse

我正在为Eclipse创建一个插件,我创建了一个StructuredTextEditor。编辑器包含XML。我希望很好地对齐代码(如缩进等)。我搜索了一种可能性,即应用Eclipse的标准函数“格式” SHIFT + Ctrl + F 。 我找到了一个代码片段,但是我没有让它起作用:

    String commandId = IJavaEditorActionDefinitionIds.FORMAT;
    IHandlerService handlerService = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
    try {
        handlerService.executeCommand(commandId, null);
    } catch (Exception e1) {
        e1.printStackTrace();
    } 

我总是得到以下例外:

org.eclipse.core.commands.NotHandledException: There is no handler to execute for command org.eclipse.jdt.ui.edit.text.java.format

是否有人可以帮助我运行此代码,或者获得格式化xml内容的其他解决方案,使用与eclipse格式化程序使用相同的格式非常重要。

1 个答案:

答案 0 :(得分:2)

感谢greg-449我搜索了正确的函数来调用并找到它。 这是我使用StructuredTextEditor的函数。

private void formatString() {
    String commandId = "org.eclipse.wst.sse.ui.format.document";
    IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
    try {
        handlerService.executeCommand(commandId, null);
    } catch (Exception e1) {
    }
}