Component in Debugger tab does not show correctly after plugin installation

Answered

Hi,

I’m implementing a plugin with debugging features for a language. I have overridden the createTabLayouter method of the XDebugProcess class in order to be able to add new components in the Debugger tab.

When running the plugin I get this view of the Debugger tab, which is what I expect, the content represented with the Actors title is located on the right, inside the Debugger tab.

however, after installing my plugin in IntelliJ 2018.3.4 (Community Edition) I get this view

Is there a way that I can set the position by default of the new content I added that works also after installation? 

This is my code when implementing the new XDebugTabLayouter:

@Override

public void registerAdditionalContent(@NotNull RunnerLayoutUi ui) {

    this.layoutUi = ui;

    this.layoutUi.addContent(createActorContent(), 0, PlaceInGrid.right, false);

    //attach view to session

    XDebugViewSessionListener.attach(actorView, session);


    AppUIUtil.invokeLaterIfProjectAlive(this.project, () -> {

        if (session != null) {

            session.rebuildViews();
        }
    });
}

I have followed this implementation for the Frames tab, https://github.com/JetBrains/intellij-community/blob/master/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java#L211 but I was not able to get the RunContentDescriptor instance for registering my view. With the following code, I got null for the descriptor. Could this be the cause of the tab location problem after installing the plugin?

RunContentDescriptor descriptor = RunContentManager.getInstance(this.project).findContentDescriptor(this.executor, this.handler);
Disposer.register(descriptor, actorView);

Thanks in advance.

4 comments
Comment actions Permalink

Hi, first try to "restore default layout" of the debugger toolwindow (there's an action on the toolbar). This may be caused by the incorrect saved position from the previous sessions.

0
Comment actions Permalink

Hi, I have tried the "restore default layout" action and the Actors content is correctly set on the right now of the Debugger tab :) Even after reinstalling the plugin and reopening the IDE again the layout looks the same now as when running the plugin in development mode. Then I suppose is not necessary to register the new content view to the RunContentDescriptor, please correct me if I'm wrong but adding the content to the RunnerLayoutUi seems sufficient when customizing new components to the Debugger tab.

0
Comment actions Permalink

Yes, RunnerLayoutUi should be enough.

0

Please sign in to leave a comment.