IntelliJ - Debug info window shortcut? - intellij-idea

In IntelliJ, when a breakpoint suspends an a program.. If I hover over a variable with the mouse cursor and wait for a second or two, a tooltip appears, which lets me inspect the variable by clicking the + sign. For example in the below image, I kept my mouse cursor over three for a second or two and the tooltip saying Main$Die#452 appeared.
Is there a way to show this tooltip only by using the keyboard and the current cursor location? In other words, in the screenshot above, how would I see the tooltip for the variable one (where my keyboard cursor is) without moving the mouse cursor over the variable one? (And how would I expand it once I see the tooltip?)
While debugging code, I realized I end up inspecting objects like this very often and moving around the mouse and waiting for the tooltip to appear starts to slow down the process a little.

The action is called "Quick evaluate expression":
You can invoke it via alt+⌘+F8 on macOS, or ctrl+alt+F8 on Windows

Related

How can I move focus from the Quick Documentation pop-up back to the Code completion pop-up without using the mouse?

Context:
When a code completion pop-up (Ctrl+Space) appears I often need to have a look at docs for each individual method / constant / etc). The IDE is set to show the Quick Documentation pop-up for a highlighted suggestion automatically after a small delay. Sometimes the documentation is too big and I need to jump to the Quick Documentation pop-up in order to be able to scroll down through it.
Using the mouse I can click on the documentation pop-up and scroll using the mouse wheel. When I'm done reading the documents I can click on the code completion pop-up to explore other suggestions.
My problem is that once the Quick Documentation pop-up is in focus, I haven't found a way to move the focus back to the code completion pop-up without using the mouse.
While I can move focus from the code completion to the quick documentation pop-up by pressing Ctrl+Q, and then use the arrow keys to "scroll" through the documentation, I haven't found a shortcut to return the focus to the code completion pop-up.
What I've tried to far:
Esc closes both pop-ups
Pressing Ctrl+Q a second time opens the docs on a tool window
Any insights on how I can close the Quick Documentation pop-up or move the focus back to the code completion pop-up in such a way that preserves the suggestion that I have previously highlighted?
This seems to be a bug in IntelliJ IDEA . Feel free to add your use-case at https://youtrack.jetbrains.com/issue/IDEA-168388
Here is a workaround that could be used for the time being:
Open Documentation as a Tool Window:
Add keyboard shortcut to focus documentation window from anywhere:
When the completion popup appears, focus documentation tool window by the shortcut from [2] and scroll it
Press Esc to unfocus documentation tool window and focus completion popup

SAP GUI scripting - Button press fails

I am using a macro in an Excel file that runs the SAP GUI. There is a step where, when I click a button in SAP there will be another window that pops up.
For that I have written a code like this:
session.findbyid("wnd[0]/XX/btnXX").press
session.findbyid("wnd[1]/XX/btnXXX").press
There is a button (btnXXX) in the window (wnd[1]). But when I execute this query, I am getting an error object not found for findbyid.
When I keep the break point and execute it, it is throwing error on 2nd line in the above code. I try to pick the activewindow.name and it shows wnd[0] still. Here the issue is wnd[1] is not getting opened.
Does somebody know why the 2nd "button press" doesn't work?
You should be able to replace all mouse clicks with keyboard strokes.
Replace:
session.findbyid("wnd[0]/XX/btnXX").press
With:
session.findById("wnd[0]").sendVKey(N)
Where N is the linked hot-key ID.
To get the exact command, use SAP script recording and only use the keyboard to transition between views and windows. The easiest way to determine how is to hover your mouse over the buttons you would normally click to learn the hot-key then record the hot-key.
Note 1) So far I have found that btn[XX] always maps to sendVKey(XX), but I can't be certain this is always the case.
Note 2) sendVKey always appears to be referenced off the window (wnd[Y]) even if a button is another layer down (/tbar, /usr, etc.).

Sikuli click is not effect

I'm using SikulixIDE 1.1.0 to write a script playing Yugioh game (run on Windows 10 x64).
See the main screen:
I start the game manually and then run the script as below:
switchApp("Yu-Gi-Oh! PC")
click("1477213591920.png")
My expectation is that the link named "DUEL MODE" is clicked to go to the next screen. The cursor always moves to that link, but sometimes it works, sometimes does not.
I check the log and see that Sikuli has sent click command but for some reason, the game not accept it. This is the log:
[log] App.focus: [8020:Yu-Gi-Oh!]
[log] CLICK on L(687,488)#S(0)[0,0 1366x768]
I've already tried:
doubleClick instead of click
sleep a few seconds
hover and click
But all do not work, neither.
I would expect that some of the things you have tried will help but if that's not the case you will need to identify whether the button was actually triggered or not. To do that you have to capture the next screen or any part of it that uniquely identifies it. Then you will use it a loop with a predefined number of attempts and some wait time between them and click more than once if the click didn't work. So generally something like that (pseudo code):
attempts = 3
for attempt in attempts:
click(button)
if (nextScreen is available):
break
sleep(time)
I know it's been a while but I ran into a similar problem recently.
The image was found but the click didn't work.
I'm also working on Windows 10 x86_64.
The solution was simply to execute the program as administrator.
Don't know why but now it's working..
I also had to use the double click instead of simple click for some patterns.
In adition to Eugene S Answers, if you are using SikuliX, you can try to Run in Slow Motion. Also, if the image have some effects (like brightness), you can try to use Pattern inside of exists():
if exists(Pattern("DualMode.png").similar(0.6), time_in_seconds):
click(Pattern("DualMode.png").similar(0.6))
By default, the similar() value is 0.8, so if the image have some effect and for example, the color change every second, you can set a lower value between 0 and 1.
PS: Don't forget to put the pattern inside if exists and click, because if you don't put inside of click(), could throw an Image not found error message.

How do you see values when debugging in Xcode?

I'm trying to see what the value of myImage.height is in the debug mode in Xcode, I've got a breakpoint on this line...
float s=myImage.height/cos(30*M_PI/180)/2;
It all runs fine and get's to that line, in the debug panel I can see myImage (my Image is a Sparrow framework SPImage object) but I can't see any values for any of the class vars.
This is literally the first time I've used a break point/debug panel in xcode so I'm probably just not doing something right.
I also tried
NSLog(#"myImage height: %f",myImage.height);
But I can't see that being outputted in the output panel either.
I'm coming from a AS3 background, where you would see...
myImage.height along with it's value to the right in the debug panel in Flash, so I'm looking for the same thing in Xcode. Do I have to run it in a different mode or is there another panel to open or something?
In the console area, you can show 2 distinct "parts", one is the variables in scope, and the other is the actual output console. In the stack area, you can see all variables in scope.
You can also hover your mouse over any variable in code, then click on the little disclosuer arrow and select "print description" to have it plop it into the console. (The console is also where NSLog stuff goes).
Check out this picture:
And then this one:
Note you can also "print description" from the variable area:
edit here's more detail on the hover-access to the value: Click on the variable name, then move the mouse to the right, and there should pop up a yellow bar with info about the instance. This is is different from the little blue arrow, which is available even when not debugging.
If anything is being outputted, it's in the bottom panel. There are three icons on the top right of the bottom panel, and each one shows different data views. Try all three. In case you can't see the bottom panel, you can show it with the middle button in the segmented control above the word "View" in the top right of your XCode window.

AutoHotkey background clicking and typing

I'm trying to use AutoHotkey to do some background clicking and typing while I'm doing other stuff in the foreground.
I've gotten used to Send but I haven't figured out how ControlSend works yet. Can anyone give me an example using something simple like MSPaint in the background and changing the color of paint.
Is this even possible to do? I have a script currently that pulls from daily Excel report, assigns each row a variable and punches it into another program, but I need it to click and type some canned messages as well.
The first question should probably be why use mouse control? Keyboard control is sooo much easier and often more reliable. What is it that you try to do with a mouseclick that can't be done through keyboard commands?
Also mouse clicks normally activate the hidden app.
OK you wanted an example...
+Home:: ;Shift + Home = stop/start radio
SetControlDelay -1
ControlClick, x384 y143, Radioplayer
Return
Here i click on the play/pause button of a streaming radioplayer. The mouse coordinates are found with the aforementioned Windows Spy and the title of the browser (you might have to use SetTitleMatchMode). Why not look at the AutoHotKey Command list and check out the examples there....
Let me know if this is (roughly) what you are looking for....
SendMode Input ; Recommended for new scripts
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
SetTitleMatchMode, 2 ; A window's title can contain the text anywhere
!F1:: ; Press Alt F1 to execute
IfWinExist, Microsoft Excel
{
ControlSend ,, 1000{Enter}{Down}, Microsoft Excel
}
return
Here is some code I used to first record the mouse position (relative mouse position did not work since the window was tiled and the click position could be changed by moving the tiles). Immediately after that I click the mouse at the recorded position (and redo this later on in the code as well).
SplashTextOn, 200, 100, Script Preparations, Please Click on the Person `"Search Term`" link (1) in SAP. ; Show new instructions to the user
WinMove, Script Preparations,, (A_ScreenWidth/2)-150, (A_ScreenHeight/2)-200 ; Move the text instructions window with the name "Script Preparations" 150 pixels right of the center of the screen and 200 pixels up SoundBeep 600, 300 ; Wake up user
; From here on the left mouse button will temporarily be disabled
Hotkey, LButton, on ; Turn Left Mouse Button OFF, to capture the Mouse click
KeyWait, LButton, D ; Wait for LeftMouseButton click Down
MouseGetPos, xposS ,yposS ; Store the position where the mouse was clicked (Search Box)
MouseClick, left, %xposS% ,%yposS% ; Perform the mouse click on the captured mouse location
Hope this helps.
In your situation, I assume that you only need to determine the mouse position with Window Spy.