Not that I'm aware of.
Please share a screenshot of the menu.
Which board do you have selected in the Arduino IDE?
Do you notice any other problems with the Arduino IDE interface when the IDE is in this state?
Which operating system are you using?
If you are getting Java errors then you must be using the Java based Arduino IDE 1.x rather than the TypeScript-based Arduino IDE 2.x. Since the GUI code of the new IDE does not use even a single line of code from the IDE 1.x code base, a bug in the IDE 1.x GUI will be unlikely to have the same cause as one in the IDE 2.x GUI, even if they resemble each other.
I'm not sure it will solve the problem reported by @boristheromanoff. The reason is that "Go to Definition" depends on the Arduino Language Server, so the only way you could get that functionality when using Geany for the editor is if you have a language server set up in Geany.
You might be able to get some level of functionality out of a standard C++ language server, but a standard C++ language server doesn't know anything about the Arduino sketch preprocessing and library discovery.
The purpose of Arduino Language Server is to act as the translator between the Arduino sketch build system and a standard C++ language server (clangd). In theory, it should be able to integrate Arduino Language Server with any IDE that understands the standard Language Server Protocol, but it is likely to be a bit of an advanced process.
If you only want to use an external editor, the only setup needed is to do this in the Arduino IDE:
- Select File > Preferences from the Arduino IDE menus.
- Check the box next to "☐ Auto save".
- Click the OK button.
You can now open your sketch files in any editor and use that editor to write your sketch code. The sketch open in the Arduino IDE will reflect any changes that you have made in the external editor.
You can continue to use the Arduino IDE for compilation, uploads, Boards Manager, Library Manager, etc.