Improve highlight rules; tweak 'macro mode' inference