Have you considered going the cross-compiling route and using DJGPP with a modern IDE in a newer OS?
On GitHub I found build-djgpp, a script that downloads, builds and installs DJGPP as a cross-compiler on modern operating systems (Windows, macOS and Linux). It takes a lot of the tedious stuff out of your hands!
As for what IDE to use, personally I like the IDEs by JetBrains, having used IntelliJ IDEA a lot at work over the years. So I decided to try getting a DJGPP cross-compiler to work with CLion, a C/C++ IDE from the same company that uses the same IDE engine and supports many of the same plugins.
After I had installed DJGPP as a cross-compiler on my Linux environment, I managed to configure it as a project compiler in CLion and I was successful in compiling and building some example code with it and then running the resulting EXE in DOSBox. 😀
The JetBrains IDEs are highly regarded, with good refactoring tools and other modern IDE features, as well as a rich selection of available plugins.
Two things to keep in mind, though:
* Unlike IntelliJ IDEA, CLion does not have an open source "community" edition and therefore requires a paid license.
* CLion currently only supports the CMake build system. If you're intending on working on existing DOS DJGPP projects, they probably use a build (make) system other than CMake and those are usually not easy to convert, especially in more complex projects. Something to keep in mind.
Of course once you have installed DJGPP as a cross-compiler, you should also be able to get it working on other modern C/C++ IDEs, many of which are open source:
* Eclipse
* Netbeans
* Visual Studio Code (not to be confused with regular Visual Studio, Visual Studio Code is free, cross-platform and open source)
I haven't tried DJGPP with any IDE other than CLion yet, though. I'm curious about the experience of others here.
Some people here might consider the luxury of a modern IDE on a modern operating system "cheating" when doing DOS development, but all these modern IDE features do help in taking much of the most tedious and least fun parts of programming out of our hands, so why not? At least that's how I see it. To each their own. 😀