Coder Social home page Coder Social logo

Comments (17)

laeubi avatar laeubi commented on July 28, 2024

@mickaelistria can you share a screenshot / cast? I can hardly follow the description mostly as I seldom use your described workflow.

from eclipse.platform.ui.

jukzi avatar jukzi commented on July 28, 2024

You can use the Expressions View instead of Inspect.

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

You can use the Expressions View instead of Inspect.

that doesn't work with "2 distinct executions" (which is the most important part of the workflow), as switching to another StackFrame updates the values. I basically want a way to be able to see some values from 2 distinct stack frames, without having to have 2 distinct workbench windows.
Another similar story (harder and maybe not as powerful) was eclipse-platform/eclipse.platform#531

from eclipse.platform.ui.

jukzi avatar jukzi commented on July 28, 2024

If it is 2 different debugees you could use 2 distinct workspaces.
For comparing results of of different threads within same debugee i don't know a solution and help myself with screenshots. So i could use that feature too, but i have no idea how it could be intuitivly visualised which values belong to which stackframe.

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

If it is 2 different debugees you could use 2 distinct workspaces.

When in desperate need, I use 2 workbench windows (Window > New Window) which can allow to have different stackframes selected in each window and update all the context. It's really powerful, but it's not so easy to use and it often seems overkill to quickly compare 2 values.

A first idea would be to augment the Inspect popop with 2 new actions (Pin/Close) in its action menu:

Screenshot from 2024-05-31 11-54-04

So it would look like

  • Move
  • Resize
  • Pin
  • Close

from eclipse.platform.ui.

jukzi avatar jukzi commented on July 28, 2024

But how could the user know which Window belongs to which frame?

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

But how could the user know which Window belongs to which frame?

in a 1st iteration, I think it could be up to them to remember, as it's not (yet?) a very common workflow,.
But yes, later on we should consider adding some information to the dialog to show the context in which one it got evaluated. I wouldn't just make it a blocker right now.

from eclipse.platform.ui.

jukzi avatar jukzi commented on July 28, 2024

Things that need later to be done are a blocker for me, as otherwise they are usually not done.

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

It seems like we could implement it in PopupDialog, so it could also help some other stories.

from eclipse.platform.ui.

iloveeclipse avatar iloveeclipse commented on July 28, 2024

It seems like we could implement it in PopupDialog, so it could also help some other stories.

I doubt having N pinned dialogs is "the" solution here.

I personally never use this functionality, but if I would use it in the way you do, I would probably just want to "move" current popup content to Expressions view and there provide a way to "pin" expressions to threads/frames, as long as they run/exist.

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

I personally never use this functionality, but if I would use it in the way you do, I would probably just want to "move" current popup content to Expressions view and there provide a way to "pin" expressions to threads/frames, as long as they run/exist.

I think it's more or less what I suggested in eclipse-platform/eclipse.platform#531

from eclipse.platform.ui.

iloveeclipse avatar iloveeclipse commented on July 28, 2024

I think it's more or less what I suggested in eclipse-platform/eclipse.platform#531

Probally I can't understand the use case, but you proposeda "diff" view and here you want persistent per frame inspection values?

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

you proposeda "diff" view

No, in the other issue, I propose that we can show values from multiple sources in the Variable/Expressions view (I'm against yet-another-view), adding them as colums.

here you want persistent per frame inspection values?

Yes, I just want to be able to look at 2 inspected expressions, from whichever source, simultaneously. And this is currently only possible without 2 distinct workbench window.

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

I've managed to add the menu entries and so on, but pinning seems more deeply rooted than I thought. Here is the stack that shows the dialog closing when an external event happens. I was hoping for some listener to tweak in PopupDialog, but it seems deeper

Thread [main] (Suspended (entry into method close in PopupDialog))	
	QuickAccessDialog(PopupDialog).close() line: 1114	
	QuickAccessDialog.close() line: 306	
	QuickAccessDialog(Window).handleShellCloseEvent() line: 739	
	Window$1.shellClosed(ShellEvent) line: 685	
	TypedListener.handleEvent(Event) line: 115	
	EventTable.sendEvent(Event) line: 91	
	Display.sendEvent(EventTable, Event) line: 5855	
	Shell(Widget).sendEvent(Event) line: 1617	
	Shell(Widget).sendEvent(int, Event, boolean) line: 1643	
	Shell(Widget).sendEvent(int, Event) line: 1626	
	Shell.closeWidget() line: 711	
	Shell.close() line: 707	
	Shell.traverseEscape() line: 3144	
	Shell(Control).traverse(Event) line: 6667	
	Text(Control).translateTraversal(long) line: 6640	
	Text.translateTraversal(long) line: 2896	
	Text(Control).gtk_key_press_event(long, long) line: 3996	
	Text.gtk_key_press_event(long, long) line: 1886	
	Text(Widget).windowProc(long, long, long) line: 2595	
	Text(Control).windowProc(long, long, long) line: 6833	
	Text.windowProc(long, long, long) line: 2992	
	Display.windowProc(long, long, long) line: 6162	
	GTK3.gtk_main_do_event(long) line: not available [native method]	
	Display.eventProc(long, long) line: 1598	
	GTK3.gtk_main_iteration_do(boolean) line: not available [native method]	
	Display.readAndDispatch() line: 4514	
	PartRenderingEngine$5.run() line: 1151	
	Realm.runWithDefault(Realm, Runnable) line: 339	
	PartRenderingEngine.run(MApplicationElement, IEclipseContext) line: 1042	
	E4Workbench.createAndRunUI(MApplicationElement) line: 152	
	Workbench.lambda$3(Display, WorkbenchAdvisor, int[]) line: 639	
	0x00000000a629ed20.run() line: not available	
	Realm.runWithDefault(Realm, Runnable) line: 339	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 546	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 173	
	IDEApplication.start(IApplicationContext) line: 152	
	EclipseAppHandle.run(Object) line: 208	
	EclipseAppLauncher.runApplication(Object) line: 143	
	EclipseAppLauncher.start(Object) line: 109	
	EclipseStarter.run(Object) line: 439	
	EclipseStarter.run(String[], Runnable) line: 271	
	DirectMethodHandle$Holder.invokeStatic(Object, Object, Object) line: not available	
	0x00000000a60c6800.invoke(Object, Object, Object, Object) line: not available	
	0x00000000a60c6c00.invokeExact_MT(Object, Object, Object, Object, Object) line: not available	
	DirectMethodHandleAccessor.invokeImpl(Object, Object[]) line: 155	
	DirectMethodHandleAccessor.invoke(Object, Object[]) line: 103	
	Method.invoke(Object, Object...) line: 580	
	Main.invokeFramework(String[], URL[]) line: 668	
	Main.basicRun(String[]) line: 605	
	Main.run(String[]) line: 1481	
	Main.main(String[]) line: 1454	

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

My bad, please ignore last comment which was exactly about ESCAPE being pressed. Everything seems fine, I'm pushing a pull request.

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

PR is #1906

from eclipse.platform.ui.

mickaelistria avatar mickaelistria commented on July 28, 2024

And eclipse-platform/eclipse.platform#1403 as consumer

from eclipse.platform.ui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.