You are not logged in.
Godot supports using external IDEs instead of it's own built-in code editor, which mostly just involves launching the specified IDE when a code file is double-clicked. In my case, I'm using Intellij Rider.
Setup: Have Rider open, launch the Godot editor into an existing project with either a .gdscript or .cs file, and double-click that script file in the Godot editor.
Expected result: the selected file opens as a new tab within the existing Rider window
Actual result: a new Rider process is launched, essentially booting the application from scratch, and opens the file in that window. This takes a while, up to 20s sometimes.
Possible problems/questions I've tried to answer:
Is Godot launching rider with the wrong command/flags?: Does not appear to be the case. I examined the output of
ps -eo pid,argsand found that the process Godot launched used the same executable and arguments as what I had launched previously using the application launcher. Copying the command line Godot used and executing it myself in the console produced the expected result (file was opened in existing window). The command-line arguments listed in Rider's docs (and in rider --help) don't mention attaching to existing processes https://www.jetbrains.com/help/rider/Wo … #arguments
Is it a problem with filepaths?: Replacing the absolute file paths with relative ones after cd-ing into the Godot project directory also gave the expected result, so probably not.
Is it something with where the process was launched from?: This is the main thing I'm not sure about, the process tree alone doesn't imply that this would be an issue: (trimmed for brevity)
systemd─┬─NetworkManager───4*[{NetworkManager}]
├─systemd─┬─(sd-pam)
│ ├─bwrap───bwrap───godots───godots-bin─┬─3*[Godot_v4.5.1-st]
│ │ v -----rider process launched by Godot
│ │ ├─Godot_v4.5.1-st─┬─rider─┬─Rider.Backend─┬─dotnet───20*[{dotnet}]
│ │ │ │ │ ├─dotnet───18*[{dotnet}]
│ │ │ │ │ ├─dotnet───42*[{dotnet}]
│ │ │ │ │ └─70*[{Rider.Backend}]
│ │ │ │ ├─fsnotifier
│ │ │ │ └─120*[{rider}]
│ │ │ └─32*[{Godot_v4.5.1-st}]
│ │ └─19*[{godots-bin}]
│ ├─jetbrains-toolb───82*[{jetbrains-toolb}]
│ ├ v ---- pstree process launched in konsole bash. This bash had expected rider behavior when running the command
│ ├─konsole─┬─bash───pstree
│ │ ├─bash
│ │ └─9*[{konsole}]
│ ├─konsole─┬─nvim───nvim
│ │ └─5*[{konsole}]
│ ├─ksmserver───4*[{ksmserver}]
│ ├─kwalletd6───8*[{kwalletd6}]
│ ├─kwin_wayland_wr─┬─kwin_wayland─┬─Xwayland───4*[{Xwayland}]
│ │ │ └─18*[{kwin_wayland}]
│ │ └─{kwin_wayland_wr}
│ ├─plasma-welcome───12*[{plasma-welcome}]
│ ├─plasmashell───77*[{plasmashell}]
│ ├─polkit-kde-auth───8*[{polkit-kde-auth}]
│ v ---- rider process launched by Application Launcher
│ ├─rider─┬─Rider.Backend─┬─dotnet───21*[{dotnet}]
│ │ │ ├─dotnet───22*[{dotnet}]
│ │ │ ├─dotnet───42*[{dotnet}]
│ │ │ └─71*[{Rider.Backend}]
│ │ ├─fsnotifier
│ │ └─108*[{rider}]I marked relevant places in the tree. I thought it might have been an issue with "godot is too far down the process tree or something so maybe the rider command it executes can't see "up" to the existing process?" but the fact that launching rider from Konsole works fine seems to disprove that.
Is there some other profile/configuration that is being assumed by Godot/Rider?: Also an unanswered question. A weird quirk is that the Rider launched by Godot acts like it's been launched for the first time, asking for theme and keybinding preferences.
Is it because there's a difference between the rider executable and rider.sh?: After a bit of looking around, doesn't appear to be the case. All that rider.sh appears to do is check that everything java-related is present.
Godot provides custom flag options other than the default for Rider, do those help?: No, not really. If anything it makes it a little worse, with Rider asking if I want to open the project associated with a .cs file instead of opening the project silently when using the Godot default flags.
Does Godot launch a new Rider window every time?: It does not! Once Godot launches a new window, it will use that window when opening files so long as it stays open.
While I do want to know what is causing this, and how to fix it, I'm also interested in learning about how programs launch in existing processes in the first place. How does running "rider script.cs" know to use the existing rider process instead of opening a new one? Why is it breaking for Godot specifically? I'm not entirely sure how to word it for Google; "attach to existing window", "launch command using existing process" don't seem to bring up anything relevant.
Everything is using the most up-to-date stable version, will edit when I get the time to grab my laptop and check exact versions.
Last edited by EarthTurtle (2025-11-06 08:15:42)
Offline
I will check it out when I get home, I know my Godot and Rider works but I haven't tried to open more files yet (I'm just trying to learn the basics with godot at the moment)
Offline
No, it works fine on my PC, opens a new tab in Rider. I tried with 3 different scripts. There are no logs when it tries to open the files.
edit: I actually misread your post, I thought you meant that Godot editor opens a new window for each script. If I open Rider first, it has the same behaviour as you say. But I don't really see the point in opening Rider first. Maybe there is some advanced functionality that you need.
Last edited by Luciddream (2025-11-06 16:53:57)
Offline
While I do want to know what is causing this, and how to fix it, I'm also interested in learning about how programs launch in existing processes in the first place. How does running "rider script.cs" know to use the existing rider process instead of opening a new one? Why is it breaking for Godot specifically?
I have the feeling this class is what is used to create the Rider process. But I only did a quick investigation
Offline
I've found a workaround that works. This is probably related to RIDER processes. If you open the solution from the terminal, it will use the same Process later.
For example:
/home/user/.local/share/JetBrains/Toolbox/apps/rider/bin/rider /home/user/projects/new-game-project/New\ Game\ Project.slnand if you open the solution from the Toolbox directly (second tab), it will also open the files in the existing process.
Last edited by Luciddream (2025-11-06 20:21:45)
Offline