Well, this question was asked quite a while ago, and it happens that now I'm helping my kid learn programming by making minecraft plugins so I encountered the same issue :)
This Spigot guide for debugging local/remote server is very useful: https://www.spigotmc.org/wiki/intellij-debug-your-plugin/ I verified that the local server debugging works well.
Essentially, you define a run/debug configuration, which allows you to not only start/debug your minecraft server, but you can also "reload classes" (Default shortcut is Control+Shift+F9) which does "hot swapping" allowing you to modify code on-the-fly, reducing even further the overhead per code modification iteration in many cases.