Invoke an intelliJ run/debug configuration from command line? - intellij-idea

I've got some Run/Debug Configurations defined in my JetBrains IDE, and to run them obviously you'd normally press the green 'play' icon;
However, I want to combine that with scripts I've got on my machine which detect file system changes and re-run some validation steps in the background;
Now what I'd like to do is to say something like 'when the CLI detects that something is stale, start the run/debug configuration in the IDE'.
So in pseudo-bash, something like
# if any "*.rs" file changes, press the green button in intellij;
watch-files *.rs -x "run-intellij-config 'check controlplane'
Is it possible to invoke tasks within IntelliJ like this?

There is no way to do this currently, please vote for IDEA-157076 to be notified on any progress with this feature request

Related

Can't navigate to Karma test file from Tests Run tab in IntelliJ Ultimate

I have an Angular project with Karma/Jasmine tests files. I configured my IntelliJ IDEA (2022.2.4 (Ultimate Edition)) to run Karma tests, which works mostly fine.
One thing that doesn't work is opening the Tests Run tab and navigating to the source for a test by clicking on the test name.
For example on the screenshot below, I expect that clicking on the test marked in red would open the corresponding project-menu-component.spec.ts file to the corresponding it(), but nothing actually happens when I click:
I have the following settings:
Jump to source doesn't work for specs with dynamically generated names. Related ticket: WEB-26625, please vote for it to get notified on updates

Unable to add External Tool to run Before Configuration Launch IntelliJ

Introduction
I've looked around and haven't seen anyone else having my issue.
Basically, I am wanting to run a start.bat file to start up my server before I start up my debugging session. I currently have my debugging inside of an IntelliJ Configuration and it works well. The problem is that in the options for my configuration I can't seem to add an "External Tools" task to the Before Launch section. I was able to add a maven task here previously. However, when I follow the following steps, the "start.bat" is not added.
First I go into Settings->Tools->External Tools to add my Spigot-Server tool which basically calls the start.bat file inside of a test-server directory.
Snippet of External Tools
Second, I go into my "Debug Spigot" configuration and at the bottom, I see a "Before Launch" Section.
Snippet of Spigot Debug options
I click on the + inside of that section to add a new task, and I click on "External Tools"
Snippet of adding External Tools Task
And then I make sure my Spigot-Server task is selected.
Snippet of select external tool
And then once I hit okay, the window closes but I don't see a new task added to the before launch section. It looks the same it did before I clicked on anything. I also don't see any status message at the bottom of IntelliJ
I basically expect the task "Spigot-Server" to show under the Before Launch section. This would basically start up the server and once the server was completely started, it would then launch the debugging configuration.
I think it may be an issue with IntelliJ's UI. I searched IntelliJ's issue tracker But couldn't find any that matched.
I'm wanting to know if there are any work arounds to get this setup in IntelliJ>
I was able to achieve my goal by doing some workarounds that I discovered with the help of CrazyCoder. I found this stackoverflow question that told me about the batch plugin.
I was able to create a Batch run configuration for a wrapper batch file that gets around the limitation CrazyCoder mentioned. He said that even if I did get my setup where my server runs before my debugging is launched, my debugging would never launch. This is because the terminal process needs to exit before the next task starts.
To get around this this is the wrapper batch file I created.
#echo OFF
START "Spigot-Server" /D C:\Users\rocke\Documents\Programming\Minecraft\Spigot\capture-the-carrot\test-server "start.bat"
ping -n 3 127.0.0.1 >nul
It basically uses the "START" command to run the task asynchronously and then waits 2 seconds. This is because all I need to do is wait for the start.bat command to run the very first part so that it establishes remote debugging. And then the wrapper ends after 2 seconds (the 3 represents the number of seconds I want to wait +1). And this allows the Debugging process to start while also ensuring that the server has setup remote debugging!
I'll just share screenshots of my configuration if anyone wants to do the same.
Maven Build Configuration
Spigot Server Start Configuration
Remote Debugging Configuration
The way this is setup is once I run the Remote Debugging Configuration, it has a "Before Launch" Task of Spigot Server. Spigot Server also has a "Before Launch" Task of Maven Build Project.
So my Maven Build Project runs, then my Spigot Server wrapper runs and after 2 seconds terminates, and then my Debugging Configuration runs!
If you have any questions regarding remote debugging with spigot, use this resource: https://www.spigotmc.org/wiki/intellij-debug-your-plugin/

Intellij GitToolBox Plugin Spawns dozens of ssh.exe that never close

I just started at a new company and they use Intellij with the GitToolBox plugin. Their code is on BitBucket. I seem to be able to do everything manually so I think Git and the SSH stuff is all connected. When I open Intellij it opens up a dozen or more ssh.exe and maxes out my CPU (i9) and will stay that way forever until I manually kill them. When I try to fetch it also runs forever and never shows progress or completes. I verified that it is indeed the GitToolBox plugin as this issue does not occur when I remove that plugin. I have tried older versions as well as adding/removing the plugin.
The only thing I can see in the Intellij logs are repo hash mismatch INFO messages and the following:
2021-08-16 14:04:36,198 [ 557785] WARN - nSystem.impl.ActionToolbarImpl - 'TodoViewToolbar' toolbar by default uses any focused component to update its actions. Toolbar actions that need local UI context would be incorrectly disabled. Please call toolbar.setTargetComponent() explicitly.
java.lang.Throwable: toolbar creation trace
And
2021-08-16 14:04:59,580 [ 581167] WARN - penapi.actionSystem.impl.Utils - Use DataManager.getDataContext(component) instead of SimpleDataContext for wrapping.
java.lang.Throwable: Use DataManager.getDataContext(component) instead of SimpleDataContext for wrapping.
Has anyone encountered this or know how to fix it?
For anyone that happens upon this issue, I installed Git For Windows incorrectly and was using the "Git Bash only" option instead of the "Command line and 3rd party apps" option during the initial install. To change these you have to completely uninstall g4w and reinstall it selecting the new options.

Intellij: Run button disabled for tcServer

I am new to IntelliJ and trying to get my web application to launch using tcServer
I am using a local configuration, and have added a run configuration. See attached screenshots
However, when I attempt to run this, the Run button is disabled.
What am I missing here?
You have edited a default configuration, you did not add a new runnable server configuration. In order to do that click on the green + sign at the top left of the run screen.
You should remove the war from the default configuration and add it in the newly created server.
see attached, screenshot, you can see the difference between a default and a runnable configuration
It seems you have to use the little green "+" in the upper left corner. The one you edited is just the default setting for your spring server. If you add a specific run configuration like that to your project it will appear. Good luck.

SWTBOT switch workspace

I am using SWTBOT with tycho-surfire to test an eclipse application. The tests runs individually fine, but when I combine them I need to switch the workspace after each test, or specify somehow a specific workspace for each test. When I try to switch the workspace from inside the test with this code:
<code>
bot.menu("File").menu("Switch Workspace").menu("Other...").click();
bot.shell("Workspace Launcher").activate();
String workspace = bot.comboBoxWithLabel("Workspace:").getText() + "/ResetButtonTest";
bot.comboBoxWithLabel("Workspace:").setText(workspace);
bot.button("OK").click();
</code>
the simulator reaches the OK button and press it, the workbench closes but never starts again. There was an error asking to set the property eclipse.vm, and I did. The error is gone but still can not switch the workspace.
Is there any configuration file or something that I can add to tyco-surfire to configure SWTBot to have a specific workspace for each test it runs? Or even to run each test in a new workbench, and not to continue in the same workbench? Or is there any solution that fixes the problem of switching the workspace from inside the test?
So for each test you want to set a certain workspace? The test is not about switching workspace?
If you can configure the command that starts up the SWTbot test, you can add -data <my workspace> as a parameter. It will then start up with that workspace.