May 10

Programmer’s Notepad 2.1.4 Released

A new testing release, Programmer’s Notepad 2.1.4 has been released to Google Code. This release fixes a bunch of bugs, and big improvements to the text clips syntax. This does unfortunately mean a slight break with the syntax released in 2.1.2, but for good reasons. The updated syntax is now far closer to that supported by TextMate, meaning it’s easy to use most of the simpler TextMate Snippets in Programmer’s Notepad. Future releases will add support for more TextMate Snippet features. The lack of a bash shell means that many Snippets will not translate 1:1, but I aim to support at least Python scripting which will allow most Snippets to be converted with feature parity.

There is new documentation for the updated text clips syntax on the documentation site: Text Clips. To upgrade your clips you can probably simply replace all instances of $(…) with ${…}.

Changes in 2.1.4:

  1. Replaced the text clip parser with a brand new one, supporting placeholders and variables
  2. Allow text clip insertion using tab.
  3. Update tagging to use CTags 5.8, add support for new ctags languages, including batch, matlab, ocaml, …
  4. Custom scheme (schemedef improvements) including case sensitive option and various fixes and optimisations – thanks to Lennard Fonteijn
  5. Autocomplete fixes, better support for mixed tag and keyword autocomplete, again thanks to Lennard
  6. Updated Scintilla to version 2.11
  7. Distributed clips updated for new syntax


  1. Remove magic folder if add cancelled (#868)
  2. Fix overlapping UI element (#869)
  3. Fix error when enter pressed in command bar and no text present (#842)
  4. Fix annoying issue where keyboard cannot access menus from docking windows
  5. Remove system menu and min/max from docking windows (#776)
  6. Stability fixes for update check, fixes case where we fail to even open the wininet connection (#765)
  7. Correctly display status of File save modifiers (#836)
  8. Fix magic folder path changing. (#760)
  9. Default to UTF-8 file type if UTF-8 is our default code page (#821)
  10. Make sure modified state is retained when splitting view (#841)
  11. Fix incorrect matching with calltips (#792)
  12. Fix default style continuation thanks to Lennardfonteijn (#890)
  13. Don’t ignore case when matching MRU combo entries (#690)
  14. Change clashing keyboard shorcut, fixing paragraph navigation (#831)
  15. Remove length limit on quick find box (#832)
  16. Fix crash when clearing font size box (#870)
  17. Make sure we don’t try to cache too much from a single ctags line (#901)
  18. Support overwriting hidden files (#859)
  19. Make sure scheme command line argument is passed through intact (#899)
  20. Correctly remove autocomplete handlers when autocomplete aborted (#857)
  21. Fixed scrollbar being set to a width on an empty document (experimental, #897)
  22. Fix text clip completion list
  23. Various custom lexer fixes (#37 and others)
  24. Fixed Autocomplete not coming up untill before you saved a file
  25. Avoid reading zip file subfolders attribute, speed up loading

Download 2.1.4 Installer
Download 2.1.4 Portable
Download 2.1.4 Multi-Language

Thanks to all contributors, translators and testers for their help with this release.

Feb 10

Programmer’s Notepad 2.1.2 Released

A new testing release, version 2.1.2 of Programmer’s Notepad has been released to Google Code. The major new feature in this release is Code Template Fields, but there have been a lot of other changes too:

  • Code Template Fields
  • Cleaner visual style for the document tabs
  • Added line padding options, allows more whitespace between lines
  • Switch to Scintilla’s built-in line length measurement
  • Removed some 3D styling bits to clean up the look of the editor, more to do.
  • New tab text changed from to Untitled
  • -z parameter now assumes a single file after the -z, designed for notepad replacement.
  • Updated to latest Scintilla bits for some multi-caret fixes
  • Fixed a couple of regular expression issues.
  • Fix tools options tab titles.
  • Made SmartHighlight more visible, less alpha blending

In case you haven’t used a 2.1 build yet, here are the other headline features in the testing builds:

  1. Full Unicode Support
  2. Support for Translations – PN in your language
  3. Prototype Command Bar feature (with PyPN)
  4. Multiple simultaneous selections, including typing into block selections
  5. Virtual space


Download 2.1.2 Installer
Download 2.1.2 Multi-language Installer
Download 2.1.2 Portable

Updated Portable download link now, apologies for the confusion!

Oct 07

Help Wanted

Web Site

Content creation, blogging, visual design, news, backend work – there’s
plenty to be done here. I’d like to make the site more useful to PN users,
there are lots of things that would help people that I just don’t have the
time to do. Some brief examples:

Tool integration guides, list of tools you might want to use, extension
writing guide – lots of opportunities.


Become a part of a release team, help to take a build of PN and get it out
there – some basic testing and willingness to help get PN builds released
more regularly required.

Also looking for people to pipe up whenever they’re using a devel build
that they think is of good enough quality to become stable – I want to
release more often.


We now have a wiki that people can enter documentation into. I’m looking for:

  1. People to add documentation
  2. A willing volunteer to script up the code to extract the wiki contents
    and dump them out as a set of docbook files for the help generator tool.
    I’d prefer Python as that’s my favorite language and is also the language
    the wiki is written in but will take what I can get.


The development release of Programmer’s Notepad supports pre-defined scheme configurations allowing you, for example, to switch instantly to a dark background set of styles. If you have an unusual or well-thought-out set of styles configured then please save them out (see the Save button in the styles options pages) and send them along. Good ones may be included in future releases or made available for download from pnotepad.org.

Do you have a good set of text clips or perhaps the newer code templates? If so then please send them along and we’ll consider them for inclusion again either in the main download or as extras from pnotepad.org.

Lots to think about here, and there are plenty more things to do even if these aren’t up your street. Let me know if you’re interested in helping in any of these ways!

Nov 05

Text Clip Creator – First Release

You can now download a pretty functional (if rough and ready) editor for Text Clips: The PN2 Text Clip Creator


  • .NET Framework 1.1
  • Desire to create or modify text clips!

Have both of the above? Then get downloading (less than 10k)!

I know of a couple of bugs with this (cancel button doesn’t work, UI not extremely intuitive), and will fix them soon. The source is, of course, available and all contributions welcome: browse text clip creator source. Anyone who wishes to take over responsibility for maintenance of this project will be welcome on board.

Need help getting that source? Ask on the discussion list.

Update: Bjoern Graf has taken over the TCC project, and you can now file bugs for it on the sourceforge bug tracker for his attention! Thanks Bjoern, and good luck!

Feb 05

ASP.NET and XHTML Text Clips

Sam Collett has created some text clips for both XHTML and ASP.NET, and placed them on his blog:



Thanks Sam!

Feb 05

Standard C Clips

Michael Peterseim has contributed some text clips for standard C, available for download and with the next version of PN 2.

Michael came across a problem defining a couple of his clips, he wanted to use the names #include “” and #include <>. In order to use these names in XML, they need to be represented using standard XML entity declarations:

<clip name="#include &quot;&quot;"><![CDATA[#include "|"]]></clip>
<clip name="#include &lt;&gt;"><![CDATA[#include <|>]]></clip>

Note the use of the pipe “|” character to place the cursor in a clip when a user selects it. If you have text clips of your own that you think others might find useful feel free to send them to me.

Interestingly Michael used some blank clips to act as categorising headers within his clips. One of the feature requests for PN2 is to allow tree-like nesting or grouping of text clips. It would appear that this could be quite useful. What do you think?