I highly recommend Sublime Text 3 - it's especially good for programming. In addition to marking up the text, you can set key bindings, menus, macros, etc. Once you learn to use it properly it can really cut down on some repetitive tasks.
Also, Sublime Text 3 is technically shareware. However, you get the full app and can use it as long as you'd like without a license.