LSP. The Language Server Protocol. Entirely changed my life for the better this year, once I took the time to get it integrated into Emacs and get the various backends I needed installed.
Easily has saved me hundreds of hours so far, being able to view function prototypes quickly, pull up documentation as an overlay on the code, jumping to the next error, and even down to getting simple things like enumerated 'case' labels inside of a switch statement.
I was going to say the same. Before LSP it was constant effort to keep up with changing tools/scripts/hacks to keep all the code navigation/completion working, and it was still never as good as its now.
And once in a while I'd randomly have to look at some code that is not my primary work language, but everything will just work out of the box. Working with Emacs has never been better.
Huge shoutout to Magit mode, which I dearly love and definitely saved me bunch of time otherwise spent context switching to command line or another UI. 100hr = 6000min, I've been using Magit for 8 years at-least.
Assuming I'm doing some coding at-least 4 days a week, 4days * 4weeks * 12months * 8years = 1536 days of work. Let say it saves me 30 second on average by not switching window, selecting hunk individually that I love doing, doing arbitrary VCS operations (I love looking at diffs and just hitting enter to go to the source), I just need to open it 8 times per day to make it 100 hours so far. Definitely have used more than that I think. But even if this calculation is way off, and I'm not really saving time, its a very pleasant experience that is unmatched if you use Emacs IMO.
The only mystifying thing to me about Emacs' LSP support has been the fact that they chose to bring Eglot into Emacs core, instead of the (in my opinion) superior LSP-mode.
Having a consistent IDE-like experience in any editor, for any language is invaluable. It's not on par with a full featured specialized editor but still game changing.
Easily has saved me hundreds of hours so far, being able to view function prototypes quickly, pull up documentation as an overlay on the code, jumping to the next error, and even down to getting simple things like enumerated 'case' labels inside of a switch statement.