The emacs puppet-mode.el works really well, however as the language has developed more functionality, the mode has not caught up with it.
One issue that I've noticed is as follows, if we have the following code:
The puppet-mode wants to indent this into the following:
and then any following code will be similarly be affected in a cascading way.
Note: I've assigned the Category to be 'ext' as this is where the puppet-mode.el used to reside, however this may not be the correct category (or perhaps a new category for these issues would be warranted), if so, please feel free to change it.