Emacs has a package which will dynamically re-align code whenever I make changes to the buffer. For languages that don't use whitespace for defining context (python, makefile, for example), this is optimal and it does a good job showing me when I've made syntax errors. Sometimes it's a bit too annoying, but alas.
provide 'cce/aggressive-indent)
(use-package aggressive-indent
("⮕"
:diminish
:config'aggressive-indent-excluded-modes 'shell-mode)
(add-to-list (global-aggressive-indent-mode))